fix: edu/train
This commit is contained in:
zty 2024-06-12 10:09:00 +08:00
commit d1844a2104
13 changed files with 923 additions and 381 deletions

View File

@ -86,6 +86,39 @@ export default {
} }
}, },
}, },
checktaskset: {
list: {
name: "列表",
req: async function(data){
return await http.get(
`${config.API_URL}/dpm/checktaskset/`,
data
);
}
},
create: {
name: "创建",
req: async function(data){
return await http.post(
`${config.API_URL}/dpm/checktaskset/`,
data);
}
},
delete: {
name: "删除",
req: async function(id){
return await http.delete(
`${config.API_URL}/dpm/checktaskset/${id}/`);
}
},
toggle: {
name: "变更",
req: async function(id){
return await http.put(
`${config.API_URL}/dpm/checktaskset/${id}/toggle/`);
}
},
},
checkwork: { checkwork: {
list: { list: {
name: "列表", name: "列表",

View File

@ -184,4 +184,4 @@ export const schedulePeriodEnum = new EnumFactory({
'minutes': '分钟', 'minutes': '分钟',
'hours': '小时', 'hours': '小时',
'days': '天', 'days': '天',
}, parseInt) })

View File

@ -20,15 +20,21 @@
width="80" width="80"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="限(h)" label="(h)"
prop="expire" prop="expire"
width="80" width="80"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="启用" label="启用"
prop="enabled"
width="50" width="50"
></el-table-column> ><template #default="scope">
<el-icon v-if="scope.row.enabled" color="green"
><CircleCheckFilled
/></el-icon>
<el-icon v-else color="red"
><CircleCloseFilled
/></el-icon>
</template></el-table-column>
<el-table-column <el-table-column
label="派发次数" label="派发次数"
prop="total_run_count" prop="total_run_count"
@ -38,6 +44,40 @@
label="最近派发" label="最近派发"
prop="last_run_at" prop="last_run_at"
></el-table-column> ></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="80">
<template #default="scope">
<el-popconfirm
title="确定停用/启用吗?"
@confirm="table_toggle(scope.row, scope.$index)"
>
<template #reference>
<el-button
link
size="small"
v-auth="'checktaskset.update'"
type="warning"
icon="el-icon-opportunity"
></el-button
>
</template>
</el-popconfirm>
<el-popconfirm
title="确定删除吗?"
@confirm="table_del(scope.row, scope.$index)"
>
<template #reference>
<el-button
link
size="small"
v-auth="'checktaskset.delete'"
type="danger"
icon="el-icon-delete"
></el-button
>
</template>
</el-popconfirm>
</template>
</el-table-column>
</scTable> </scTable>
</template> </template>
<script> <script>
@ -52,18 +92,27 @@ export default {
riskLevelEnum, riskLevelEnum,
manageLevelEnum, manageLevelEnum,
riskTypeEnum, riskTypeEnum,
apiObj: this.$API.dpm.risk.list, apiObj: this.$API.dpm.checktaskset.list,
params: { riskpoint: this.rpId }, params: { riskpoint: this.rpId },
query: { query: {
search: "", search: "",
}, },
}; };
}, },
methods: {}, methods: {
created() {}, handleQuery() {
mounted() {}, this.$refs.table.queryData(this.query);
computed: {}, },
watch: {}, table_del(row) {
components: {}, this.$API.dpm.checktaskset.delete.req(row.id).then(() => {
this.handleQuery();
});
},
table_toggle(row) {
this.$API.dpm.checktaskset.toggle.req(row.id).then(res=>{
this.handleQuery();
})
}
},
}; };
</script> </script>

View File

@ -9,11 +9,61 @@
hideDo hideDo
style="height: 400px" style="height: 400px"
> >
<el-table-column
label="排序"
prop="sort"
width="50"
></el-table-column>
<el-table-column <el-table-column
label="名称" label="名称"
prop="name" prop="name"
min-width="100" min-width="100"
></el-table-column> ></el-table-column>
<el-table-column
label="等级"
prop="level"
width="100"
><template #default="scope"
><el-tag
:type="riskLevelEnum[scope.row.level]?.type"
>{{
riskLevelEnum[scope.row.level]?.text
}}</el-tag
>
</template></el-table-column>
<el-table-column
label="LECD值"
>
<template #default="scope">
{{scope.row.riskl}}*{{scope.row.riske}}*{{scope.row.riskc}}={{scope.row.riskd}}
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="80">
<template #default="scope">
<el-button
link
size="small"
@click="table_edit(scope.row)"
type="primary"
icon="el-icon-edit"
></el-button>
<el-popconfirm
title="确定删除吗?"
@confirm="
table_del(scope.row, scope.$index)
"
>
<template #reference>
<el-button
link
size="small"
type="danger"
icon="el-icon-delete"
></el-button>
</template>
</el-popconfirm>
</template>
</el-table-column>
</scTable> </scTable>
</template> </template>
<script> <script>
@ -33,11 +83,19 @@ export default {
}, },
}; };
}, },
methods: {}, methods: {
created() {}, handleQuery() {
mounted() {}, this.$refs.table.queryData(this.query);
computed: {}, },
watch: {}, table_edit(row) {
components: {}, this.$emit("updateRisk", row);
},
table_del(row) {
this.$API.dpm.risk.delete.req(row.id).then(() => {
this.handleQuery();
this.$message.success("删除成功");
});
}
},
}; };
</script> </script>

112
src/views/dpm/risk_form.vue Normal file
View File

@ -0,0 +1,112 @@
<template>
<el-form>
<el-form :model="saveForm" label-width="120px" ref="saveForm">
<el-row>
<el-col :span="12">
<el-form-item label="项目/步骤" required>
<el-input v-model="saveForm.name" type="textarea" :rows="1"></el-input>
</el-form-item>
<el-form-item label="检查标准">
<el-input v-model="saveForm.standard" type="textarea" :rows="2"></el-input>
</el-form-item>
<el-form-item label="危害因素">
<el-input v-model="saveForm.hazard_factors" type="textarea" :rows="2"></el-input>
</el-form-item>
<el-form-item label="可能后果">
<el-select v-model="saveForm.results" multiple>
<el-option v-for="item in resultOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="lecd判定" required>
<el-input-number :min="0" :precision="1" :step="0.1" controls-position="right" v-model="saveForm.riskl" placeholder="L值"/>
<el-input-number :min="0" :precision="1" :step="0.1" controls-position="right" v-model="saveForm.riske" placeholder="E值" style="margin-left: 2px"/>
<el-input-number :min="0" :precision="1" :step="0.1" controls-position="right" v-model="saveForm.riskc" placeholder="C值" style="margin-left: 2px"/>
<span style="margin-left: 6px">D值: <span v-if="saveForm.riskl*saveForm.riske*saveForm.riskc">{{saveForm.riskl*saveForm.riske*saveForm.riskc}}</span></span>
</el-form-item>
<el-form-item label="排序" required>
<el-input-number :min="0" controls-position="right" v-model="saveForm.sort"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工程技术措施" required>
<el-input v-model="saveForm.measure_tech" type="textarea" :rows="2"></el-input>
</el-form-item>
<el-form-item label="管理措施" required>
<el-input v-model="saveForm.measure_manage" type="textarea" :rows="2"></el-input>
</el-form-item>
<el-form-item label="培训教育措施" required>
<el-input v-model="saveForm.measure_edu" type="textarea" :rows="2"></el-input>
</el-form-item>
<el-form-item label="个体防护措施" required>
<el-input v-model="saveForm.measure_protect" type="textarea" :rows="2"></el-input>
</el-form-item>
<el-form-item label="应急处置措施" required>
<el-input v-model="saveForm.measure_emer" type="textarea" :rows="2"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="display: flex; justify-content: flex-end; margin-top: 10px">
<el-button
type="primary"
:loading="formSaving"
@click="formSubmit()"
> </el-button
>
</div>
</el-form>
</template>
<script>
const defaultForm = {};
export default {
props:{
riskpoint: {type: String, default: ""}
},
data() {
return {
saveForm: Object.assign({"riskpoint": this.riskpoint}, defaultForm),
formSaving: false,
resultOptions:[],
}
},
mounted() {
this.getResultOptions();
},
methods:{
setData(data){
this.saveForm = data;
},
getResultOptions() {
this.$API.system.dict.list.req({page: 0, type__code: "accident_result"}).then(res=>{
this.resultOptions = res;
})
},
formSubmit(){
this.formSaving = true;
if (this.saveForm.id) {
this.$API.dpm.risk.update
.req(this.saveForm.id, this.saveForm)
.then((res) => {
this.formSaving = false;
this.$message.success("更新成功");
this.$emit("riskConfirm");
})
.catch((e) => {
this.formSaving = false;
});
} else {
this.$API.dpm.risk.create
.req(this.saveForm)
.then((res) => {
this.formSaving = false;
this.$message.success("创建成功");
this.$emit("riskConfirm");
})
.catch((err) => {
this.formSaving = false;
});
}
}
}
}
</script>

View File

@ -174,11 +174,14 @@
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<Risk <Risk
ref="riskTable"
:rpId="rowData.id" :rpId="rowData.id"
v-if="defaultX == '风险列表' && rowData.id" v-if="defaultX == '风险列表' && rowData.id"
style="height: 100%" style="height: 100%"
@updateRisk="updateRisk"
></Risk> ></Risk>
<CheckTaskSet <CheckTaskSet
ref="checktasksetTable"
:rpId="rowData.id" :rpId="rowData.id"
v-if="defaultX == '排查任务配置' && rowData.id" v-if="defaultX == '排查任务配置' && rowData.id"
style="height: 100%" style="height: 100%"
@ -330,7 +333,10 @@
/> />
</span> </span>
</el-form-item> </el-form-item>
<el-form-item label="排查备注" prop="note" required> <el-form-item label="有效期(h)" prop="expire">
<el-input-number :min="0" controls-position="right" v-model="saveForm2.expire"/>
</el-form-item>
<el-form-item label="排查备注" prop="note">
<el-input <el-input
v-model="saveForm2.note" v-model="saveForm2.note"
clearable clearable
@ -348,7 +354,10 @@
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model="choseMyScheduleDialog" title="选择策略"> <el-dialog v-model="choseMyScheduleDialog" title="选择策略">
<MySchedule></MySchedule> <MySchedule @scheduleChose="scheduleChose"></MySchedule>
</el-dialog>
<el-dialog v-model="riskDialog" title="新增/编辑" width="90%">
<RiskForm ref="riskForm" :riskpoint="rowData.id" @riskConfirm="riskConfirm"></RiskForm>
</el-dialog> </el-dialog>
</el-container> </el-container>
</template> </template>
@ -357,9 +366,10 @@ import { riskLevelEnum, manageLevelEnum, riskTypeEnum } from "@/utils/enum.js";
import Risk from "./risk.vue"; import Risk from "./risk.vue";
import CheckTaskSet from "./checktaskset.vue"; import CheckTaskSet from "./checktaskset.vue";
import MySchedule from "@/views/sys/myschedule.vue"; import MySchedule from "@/views/sys/myschedule.vue";
import RiskForm from "./risk_form.vue";
const defaultForm = {}; const defaultForm = {};
export default { export default {
components: { Risk, CheckTaskSet, MySchedule}, components: { Risk, CheckTaskSet, MySchedule, RiskForm},
data() { data() {
return { return {
riskTypeEnum, riskTypeEnum,
@ -368,13 +378,14 @@ export default {
formSaving: false, formSaving: false,
saveDialog: false, saveDialog: false,
saveDialog2: false, saveDialog2: false,
riskDialog: false,
choseMyScheduleDialog: false, choseMyScheduleDialog: false,
query: { query: {
search: "", search: "",
}, },
apiObj: this.$API.dpm.riskpoint.list, apiObj: this.$API.dpm.riskpoint.list,
saveForm: Object.assign({}, defaultForm), saveForm: Object.assign({}, defaultForm),
saveForm2: {}, saveForm2: {"expire": 0},
deptOptions: [], deptOptions: [],
rowData: {}, rowData: {},
xoptions: ["风险列表", "排查任务配置"], xoptions: ["风险列表", "排查任务配置"],
@ -386,8 +397,27 @@ export default {
this.getAreaOptions(); this.getAreaOptions();
}, },
methods: { methods: {
updateRisk(row) {
this.riskDialog = true;
this.$nextTick(() => {
this.$refs.riskForm.setData(row);
});
},
riskConfirm(){
this.riskDialog = false;
this.$refs.riskTable.handleQuery();
},
risk_add() {
this.riskDialog = true;
},
scheduleChose(item){
this.saveForm2.myschedule = item.id;
this.saveForm2.myschedule_name = item.name;
this.choseMyScheduleDialog = false;
},
checktaskset_add() { checktaskset_add() {
this.saveDialog2 = true; this.saveDialog2 = true;
this.saveForm2 = {"expire": 0};
}, },
rowClick(row) { rowClick(row) {
this.rowData = row; this.rowData = row;
@ -426,7 +456,27 @@ export default {
this.handleQuery(); this.handleQuery();
}); });
}, },
formSubmit2() {
this.$refs.saveForm2.validate((valid)=>{
if(valid){
this.formSaving = true;
this.$API.dpm.checktaskset.create
.req(this.saveForm2)
.then((res) => {
this.formSaving = false;
this.$message.success("创建成功");
this.$refs.checktasksetTable.handleQuery();
})
.catch((err) => {
this.formSaving = false;
});
}
})
},
formSubmit() { formSubmit() {
this.$refs.saveForm.validate((valid) => {
if (valid) {
this.formSaving = true; this.formSaving = true;
if (this.saveForm.id) { if (this.saveForm.id) {
this.$API.dpm.riskpoint.update this.$API.dpm.riskpoint.update
@ -452,7 +502,8 @@ export default {
.catch((err) => { .catch((err) => {
this.formSaving = false; this.formSaving = false;
}); });
} }}
});
}, },
}, },
}; };

View File

@ -37,7 +37,6 @@
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="进行中" label="进行中"
prop="can_attend"
width="80" width="80"
> >
<template #default="scope"> <template #default="scope">

View File

@ -863,7 +863,7 @@ export default {
getUserList() { getUserList() {
let that = this; let that = this;
this.$API.system.user.list this.$API.system.user.list
// .req({ page: 0, belong_dept__name: "" }) // .req({ page: 0,posts__name:'' })
.req({ page: 0 }) .req({ page: 0 })
.then((res) => { .then((res) => {
that.userList = res; that.userList = res;

View File

@ -21,7 +21,7 @@
v-model="form.testitem" v-model="form.testitem"
placeholder="检验类型" placeholder="检验类型"
clearable clearable
style="width:100%" style="width: 100%"
disabled disabled
> >
<el-option <el-option
@ -39,35 +39,64 @@
v-model="form.test_date" v-model="form.test_date"
type="date" type="date"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
style="width:100%" style="width: 100%"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="样品编号" prop="sample_number"> <el-form-item label="样品编号" prop="sample_number">
<el-input v-model="form.sample_number"></el-input> <el-input
v-model="form.sample_number"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='透过率'"> <el-col :md="12" :sm="24" v-if="activeName == '透过率'">
<el-form-item label="样品厚度/mm" prop="val_hd"> <el-form-item label="样品厚度/mm" prop="val_hd">
<el-input-number v-model="form.val_hd" :min="0" style="width:100%" controls-position="right"> <el-input-number
v-model="form.val_hd"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='中温粘度'||activeName=='膨胀'"> <el-col
:md="12"
:sm="24"
v-if="
activeName == '中温粘度' || activeName == '膨胀'
"
>
<el-form-item label="规格型号" prop="specification"> <el-form-item label="规格型号" prop="specification">
<el-input v-model="form.specification"></el-input> <el-input
v-model="form.specification"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='析晶'"> <el-col :md="12" :sm="24" v-if="activeName == '析晶'">
<el-form-item label="样品数量" prop="sample_count"> <el-form-item label="样品数量" prop="sample_count">
<el-input-number v-model="form.sample_count" :min="0" style="width:100%" controls-position="right"> <el-input-number
v-model="form.sample_count"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='高温粘度'"> <el-col
<el-form-item label="样品密度" prop="sample_density"> :md="12"
<el-input v-model="form.sample_density"></el-input> :sm="24"
v-if="activeName == '高温粘度'"
>
<el-form-item
label="样品密度"
prop="sample_density"
>
<el-input
v-model="form.sample_density"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
@ -77,7 +106,7 @@
placeholder="检验员" placeholder="检验员"
clearable clearable
filterable filterable
style="width:100%" style="width: 100%"
> >
<el-option <el-option
v-for="item in userList" v-for="item in userList"
@ -88,14 +117,31 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='析晶'"> <el-col :md="12" :sm="24" v-if="activeName == '析晶'">
<el-form-item label="实验温度及保温时间" prop="sample_density"> <el-form-item
<el-input v-model="form.sample_number"></el-input> label="实验温度及保温时间"
prop="sample_density"
>
<el-input
v-model="form.sample_number"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='高温粘度'"> <el-col
<el-form-item label="升至最高温度/℃" prop="val_zgwd"> :md="12"
<el-input-number v-model="form.val_zgwd" :min="0" style="width:100%" controls-position="right"> :sm="24"
v-if="activeName == '高温粘度'"
>
<el-form-item
label="升至最高温度/℃"
prop="val_zgwd"
>
<el-input-number
v-model="form.val_zgwd"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -104,79 +150,125 @@
<el-select <el-select
v-model="form.equip_state" v-model="form.equip_state"
placeholder="仪器状态" placeholder="仪器状态"
clearable style="width:100%" clearable
style="width: 100%"
> >
<el-option <el-option
v-for="item in stateOptios" v-for="item in stateOptios"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id"> :value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='折射率'"> <el-col :md="12" :sm="24" v-if="activeName == '折射率'">
<el-form-item label="折射率(589nm)" prop="val_zsl"> <el-form-item label="折射率(589nm)" prop="val_zsl">
<el-input-number v-model="form.val_zsl" :min="0" style="width:100%" controls-position="right"> <el-input-number
v-model="form.val_zsl"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='透过率'"> <el-col :md="12" :sm="24" v-if="activeName == '透过率'">
<el-form-item label="透过率(550nm)" prop="val_tgl"> <el-form-item label="透过率(550nm)" prop="val_tgl">
<el-input-number v-model="form.val_tgl" :min="0" style="width:100%" controls-position="right"> <el-input-number
v-model="form.val_tgl"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='中温粘度'"> <el-col
:md="12"
:sm="24"
v-if="activeName == '中温粘度'"
>
<el-form-item label="Ts/℃" prop="val_ts"> <el-form-item label="Ts/℃" prop="val_ts">
<el-input-number v-model="form.val_ts" :min="0" style="width:100%" controls-position="right"> <el-input-number
v-model="form.val_ts"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='膨胀'"> <el-col :md="12" :sm="24" v-if="activeName == '膨胀'">
<el-form-item label="30-300℃膨胀系数" prop="val_pzxs"> <el-form-item
<el-input-number v-model="form.val_pzxs" :min="0" style="width:100%" controls-position="right"> label="30-300℃膨胀系数"
prop="val_pzxs"
>
<el-input-number
v-model="form.val_pzxs"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='膨胀'"> <el-col :md="12" :sm="24" v-if="activeName == '膨胀'">
<el-form-item label="Tg/℃" prop="val_tg"> <el-form-item label="Tg/℃" prop="val_tg">
<el-input-number v-model="form.val_tg" :min="0" style="width:100%" controls-position="right"> <el-input-number
v-model="form.val_tg"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='膨胀'"> <el-col :md="12" :sm="24" v-if="activeName == '膨胀'">
<el-form-item label="Tf/℃" prop="val_tf"> <el-form-item label="Tf/℃" prop="val_tf">
<el-input-number v-model="form.val_tf" :min="0" style="width:100%" controls-position="right"> <el-input-number
v-model="form.val_tf"
:min="0"
style="width: 100%"
controls-position="right"
>
</el-input-number> </el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24" v-if="activeName=='析晶'"> <el-col :md="12" :sm="24" v-if="activeName == '析晶'">
<el-form-item label="析晶状态" prop="val_xj"> <el-form-item label="析晶状态" prop="val_xj">
<el-select <el-select
v-model="form.val_xj" v-model="form.val_xj"
placeholder="析晶状态" placeholder="析晶状态"
clearable style="width:100%" clearable
style="width: 100%"
> >
<el-option <el-option
v-for="item in xjOptios" v-for="item in xjOptios"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id"> :value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="form.note" placeholder="备注"/> <el-input
v-model="form.note"
placeholder="备注"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</el-main> </el-main>
<el-footer v-if="this.mode!=='show'"> <el-footer v-if="this.mode !== 'show'">
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button> <el-button type="primary" :loading="isSaveing" @click="submit"
>保存</el-button
>
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
</el-footer> </el-footer>
</el-container> </el-container>
@ -192,29 +284,63 @@ export default {
data() { data() {
return { return {
loading: false, loading: false,
form: { form: {},
},
rules: { rules: {
belong_dept: [{required: true, message: "请选择所属部门", trigger: "blur"}], belong_dept: [
test_date: [{required: true, message: "请选择检验日期", trigger: "blur"}], {
test_user: [{required: true, message: "请选择操作人", trigger: "blur"}], required: true,
check_user: [{required: true, message: "请选择专检人", trigger: "blur"}], message: "请选择所属部门",
test_group:[{required: true, message: "请选择检测工序集", trigger: "blur"}], trigger: "blur",
is_ok: [{required: true, message: "请选择是否合格", trigger: "blur"}],
}, },
stateOptios:[
{id:'R',name:'正常'},
{id:'T',name:'异常'},
], ],
xjOptios:[ test_date: [
{id:'S',name:'析晶'}, {
{id:'K',name:'不析晶'}, required: true,
{id:'θ',name:'未化'}, message: "请选择检验日期",
trigger: "blur",
},
],
test_user: [
{
required: true,
message: "请选择操作人",
trigger: "blur",
},
],
check_user: [
{
required: true,
message: "请选择专检人",
trigger: "blur",
},
],
test_group: [
{
required: true,
message: "请选择检测工序集",
trigger: "blur",
},
],
is_ok: [
{
required: true,
message: "请选择是否合格",
trigger: "blur",
},
],
},
stateOptios: [
{ id: "R", name: "正常" },
{ id: "T", name: "异常" },
],
xjOptios: [
{ id: "S", name: "析晶" },
{ id: "K", name: "不析晶" },
{ id: "θ", name: "未化" },
], ],
visible: false, visible: false,
isSaveing: false, isSaveing: false,
userList:[], userList: [],
options: [], options: [],
processOptions: [], processOptions: [],
deptOptions: [], deptOptions: [],
@ -222,12 +348,12 @@ export default {
setFiltersVisible: false, setFiltersVisible: false,
belong_dept_options: [], belong_dept_options: [],
group: [], group: [],
behaviors:[], behaviors: [],
}; };
}, },
mounted() { mounted() {
console.log(this.activeId) console.log(this.activeId);
console.log(this.activeName) console.log(this.activeName);
this.form.testitem = this.activeId; this.form.testitem = this.activeId;
this.getTextItem(); this.getTextItem();
this.getProcess(); this.getProcess();
@ -242,32 +368,38 @@ export default {
return this; return this;
}, },
// //
getTextItem(){ getTextItem() {
let that = this; let that = this;
that.$API.qm.getTestItem.get({tag:'performance',page:0}).then(res=>{ that.$API.qm.getTestItem
.get({ tag: "performance", page: 0 })
.then((res) => {
that.behaviors = res; that.behaviors = res;
}) });
}, },
// //
getDeptOptions() { getDeptOptions() {
this.$API.system.dept.list.req({ page: 0, type__in: 'dept' }).then((res) => { this.$API.system.dept.list
.req({ page: 0, type__in: "dept" })
.then((res) => {
this.deptOptions = res; this.deptOptions = res;
}); });
}, },
// //
getUserList(){ getUserList() {
let that = this; let that = this;
this.$API.system.user.list.req({page:0,belong_dept__name:'检验管理部'}).then(res=>{ this.$API.system.user.list
.req({ page: 0, posts__name: "检验" })
.then((res) => {
that.userList = res; that.userList = res;
}); });
}, },
getProcess(){ getProcess() {
let that = this; let that = this;
this.$API.mtm.process.list.req({page:0}).then(res=>{ this.$API.mtm.process.list.req({ page: 0 }).then((res) => {
that.processOptions = res; that.processOptions = res;
}) });
}, },
handleClick(){}, handleClick() {},
// //
submit() { submit() {
this.$refs.dialogForm.validate(async (valid) => { this.$refs.dialogForm.validate(async (valid) => {
@ -276,9 +408,14 @@ export default {
try { try {
var res; var res;
if (this.mode == "add") { if (this.mode == "add") {
res = await this.$API.qm.ptest.create.req(this.form); res = await this.$API.qm.ptest.create.req(
this.form
);
} else if (this.mode == "edit") { } else if (this.mode == "edit") {
res = await this.$API.qm.ptest.update.req(this.form.id,this.form); res = await this.$API.qm.ptest.update.req(
this.form.id,
this.form
);
} }
this.isSaveing = false; this.isSaveing = false;
this.$emit("success"); this.$emit("success");
@ -295,7 +432,7 @@ export default {
// //
setData(data) { setData(data) {
Object.assign(this.form, data); Object.assign(this.form, data);
this.form.test_group = this.form.split(',') this.form.test_group = this.form.split(",");
}, },
// //
setFilters(filters) { setFilters(filters) {
@ -306,5 +443,4 @@ export default {
}; };
</script> </script>
<style> <style></style>
</style>

View File

@ -280,7 +280,7 @@ export default {
getUserList() { getUserList() {
let that = this; let that = this;
this.$API.system.user.list this.$API.system.user.list
.req({ page: 0, depts__name: "检验管理部" }) .req({ page: 0, posts__name: "检验" })
.then((res) => { .then((res) => {
that.userList = res.results; that.userList = res.results;
}); });

View File

@ -390,7 +390,7 @@ export default {
getUserList() { getUserList() {
let that = this; let that = this;
this.$API.system.user.list this.$API.system.user.list
.req({ page: 0, belong_dept__name: "检验管理部" }) .req({ page: 0, posts__name: "检验" })
.then((res) => { .then((res) => {
that.userList = res; that.userList = res;
}); });

View File

@ -38,7 +38,7 @@
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="listApi" row-key="id" :params="listApiParams" @selection-change="selectionChange" stripe :paginationLayout="'prev, pager, next'"> <scTable ref="table" :apiObj="listApi" row-key="id" :params="listApiParams" @selection-change="selectionChange" stripe :paginationLayout="'prev, pager, next'">
<!-- <el-table-column type="selection" width="50"></el-table-column> --> <!-- <el-table-column type="selection" width="50"></el-table-column> -->
<el-table-column label="序号" type="index"></el-table-column> <el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="名称" prop="name" width="360"></el-table-column> <el-table-column label="名称" prop="name" width="360"></el-table-column>
<el-table-column label="标识" prop="code"></el-table-column> <el-table-column label="标识" prop="code"></el-table-column>
<el-table-column label="排序" prop="sort"></el-table-column> <el-table-column label="排序" prop="sort"></el-table-column>
@ -257,7 +257,7 @@
this.isSaveing = false; this.isSaveing = false;
if(res.name){ if(res.name){
this.visibleDicType = false; this.visibleDicType = false;
this.getDic(); this.getDicType();
this.$message.success("操作成功") this.$message.success("操作成功")
}else{ }else{
this.$alert(res.message, "提示", {type: 'error'}) this.$alert(res.message, "提示", {type: 'error'})
@ -364,7 +364,7 @@
}else{ }else{
that.$message.success("操作成功"); that.$message.success("操作成功");
that.visibleDicItem = false; that.visibleDicItem = false;
that.getDicType(); that.$refs.table.refresh()
} }
} }
}) })

View File

@ -14,22 +14,53 @@
hidePagination hidePagination
hideDo hideDo
style="height: 400px" style="height: 400px"
@row-click="rowClick"
> >
<el-table-column label="类型" prop="name" width="80"></el-table-column> <el-table-column label="类型" prop="name" width="80">
<template #default="scope"
>{{ scheduleTypeEnum[scope.row.type]?.text }}
</template>
</el-table-column>
<el-table-column <el-table-column
label="名称" label="名称"
prop="name" prop="name"
min-width="100" min-width="100"
></el-table-column> ></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="80">
<template #default="scope">
<el-popconfirm
title="确定删除吗?"
@confirm="table_del(scope.row, scope.$index)"
>
<template #reference>
<el-button
link
size="small"
v-auth="'myschedule.delete'"
type="danger"
icon="el-icon-delete"
></el-button
>
</template>
</el-popconfirm>
</template>
</el-table-column>
</scTable> </scTable>
<el-dialog title="创建/编辑" v-model="dialogVisible" width="80%"> <el-dialog title="创建/编辑" v-model="dialogVisible" width="80%">
<el-form-item label="策略类型" prop="note" required> <el-form :model="saveForm" label-width="100px" ref="saveForm">
<el-select <el-form-item label="策略类型" required>
v-model="saveForm.type" <el-select v-model="saveForm.type">
> <el-option
v-for="e in scheduleTypeEnum.values"
:key="e.key"
:value="e.key"
:label="e.text"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="策略式" required> <el-divider />
<el-form-item label="策略式" required v-if="saveForm.type == 10">
<div style="display: flex">
每隔 每隔
<el-input-number <el-input-number
v-model="saveForm.interval_.every" v-model="saveForm.interval_.every"
@ -38,6 +69,8 @@
></el-input-number> ></el-input-number>
<el-select <el-select
v-model="saveForm.interval_.period" v-model="saveForm.interval_.period"
style="width: 200px; margin-left: 4px"
placeholder="间隔"
> >
<el-option <el-option
v-for="e in schedulePeriodEnum.values" v-for="e in schedulePeriodEnum.values"
@ -46,40 +79,111 @@
:label="e.text" :label="e.text"
></el-option> ></el-option>
</el-select> </el-select>
</div>
</el-form-item> </el-form-item>
<el-form-item label="策略式" required v-if="saveForm.type == 20">
<div style="width: 100%">
<div style="display: flex">
<span style="margin-right: 4px; width: 100px">分钟</span
><el-input
v-model="saveForm.crontab_.minute"
></el-input>
</div>
<div style="display: flex; margin-top: 4px">
<span style="margin-right: 4px; width: 100px">小时</span
><el-input v-model="saveForm.crontab_.hour"></el-input>
</div>
<div style="display: flex; margin-top: 4px">
<span style="margin-right: 4px; width: 100px"
>每周的天</span
><el-input
v-model="saveForm.crontab_.day_of_week"
></el-input>
</div>
<div style="display: flex; margin-top: 4px">
<span style="margin-right: 4px; width: 100px"
>每月的天</span
><el-input
v-model="saveForm.crontab_.day_of_month"
></el-input>
</div>
<div style="display: flex; margin-top: 4px">
<span style="margin-right: 4px; width: 100px"
>每年的月</span
><el-input
v-model="saveForm.crontab_.month_of_year"
></el-input>
</div>
</div>
</el-form-item>
</el-form>
<template #footer>
<el-button
type="primary"
:loading="formSaving"
@click="formSubmit()"
> </el-button
>
</template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { scheduleTypeEnum, schedulePeriodEnum } from "@/utils/enum.js"; import { scheduleTypeEnum, schedulePeriodEnum } from "@/utils/enum.js";
const defaultForm = { const defaultForm = {
interval_: {}, interval_: {},
crontab_: {} crontab_: {},
} };
export default { export default {
name: "myschedule", name: "myschedule",
data() { data() {
return { return {
schedulePeriodEnum, scheduleTypeEnum, schedulePeriodEnum,
scheduleTypeEnum,
formSaving: false,
dialogVisible: false, dialogVisible: false,
apiObj: this.$API.system.myschedule.list, apiObj: this.$API.system.myschedule.list,
query: { query: {
search: "", search: "",
}, },
saveForm: Object.assign({}, defaultForm) params: {},
saveForm: Object.assign({}, defaultForm),
}; };
}, },
methods: { methods: {
table_add(){ rowClick(item) {
console.log(item)
this.$emit("scheduleChose", item);
},
handleQuery() {
this.$refs.table.queryData(this.query);
},
table_add() {
this.dialogVisible = true; this.dialogVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.saveForm = Object.assign({}, defaultForm) this.saveForm = Object.assign({}, defaultForm);
});
},
table_del(row) {
this.$API.system.myschedule.delete.req(row.id).then(() => {
this.$message.success("操作成功");
this.handleQuery();
});
},
formSubmit() {
this.formSaving = true;
this.$refs.saveForm.validate((valid) => {
if (valid) {
this.$API.system.myschedule.create
.req(this.saveForm)
.then(() => {
this.handleQuery();
this.dialogVisible = false;
this.$message.success("操作成功");
}); });
} }
this.formSaving = false;
});
},
}, },
created() {},
mounted() {},
computed: {},
watch: {},
components: {},
}; };
</script> </script>