From 18fcb8ad28f583e3e1b99b23e4f7d9e1833dcd83 Mon Sep 17 00:00:00 2001 From: pengwei <2071057782@qq.com> Date: 星期三, 12 三月 2025 14:16:30 +0800 Subject: [PATCH] 最新提交 --- 项目代码/client/src/views/tts/TaskManagement/Tasktemplates.vue | 535 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 443 insertions(+), 92 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TaskManagement/Tasktemplates.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TaskManagement/Tasktemplates.vue" index 9611a94..ddcc095 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TaskManagement/Tasktemplates.vue" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TaskManagement/Tasktemplates.vue" @@ -26,27 +26,44 @@ /> </div> <div class="serch_box"> - <div class="serchb">鍏ㄥ眬鎼滅储</div> + <div class="serchb"> + <el-select + v-model="queryForm.selectType" + placeholder="璇烽�夋嫨" + size="small" + style="width: 100%; height: 100%; font-size: 0.15rem" + > + <el-option + v-for="item in selectoptions" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </div> <input - v-model="queryForm.selectName" + v-model="queryForm.selectInput" placeholder="璇疯緭鍏ュ叧閿瘝鎼滅储" style="border-left: 0.06rem solid #e2e2e2" /> </div> <el-button + @click="handleQuery" type="primary" size="small" style="margin-left: 0.98rem; height: 2rem" >鏌ヨ</el-button > - <el-button size="small" style="height: 2rem">閲嶇疆</el-button> + <el-button size="small" style="height: 2rem" @click="resetQuery" + >閲嶇疆</el-button + > </div> <div class="btns"> <div style="display: flex; align-items: center"> <el-button type="primary" size="small" - @click="dialogVisible = true" + @click="add('鏂板缓')" style=" width: 5.5rem; height: 2rem; @@ -61,9 +78,11 @@ <el-button size="small" style="width: 5.5rem; height: 2rem; font-size: 0.88rem" + @click="printExcel" >鎵归噺瀵煎嚭</el-button > <el-button + @click="Delete" size="small" style="width: 5.5rem; height: 2rem; font-size: 0.88rem" >鎵归噺鍒犻櫎</el-button @@ -87,25 +106,39 @@ fontSize: '0.88rem', height: '3rem', }" + @Select="getSelectionRows" > <el-table-column type="selection" align="center" /> - <el-table-column prop="address" label="妯℃澘鍚嶇О" align="center" /> - <el-table-column prop="date" label="浠诲姟鍚嶇О" align="center" /> - <el-table-column prop="name" label="鎶�鏈憳" align="center" /> - <el-table-column prop="address" label="妫�淇伐闀�" align="center" /> - <el-table-column prop="address" label="鐢垫皵璐ㄦ鍛�" align="center" /> - <el-table-column prop="address" label="鏈烘璐ㄦ鍛�" align="center" /> - <el-table-column prop="address" label="鐢靛姏鐭╀綔涓氬憳" align="center" /> - <el-table-column prop="address" label="鐢靛姏杈呭姪鍛�" align="center" /> - <el-table-column prop="address" label="鍒涘缓鏃ユ湡" align="center" /> - <el-table-column prop="address" label="鏈烘鐭╀綔涓氬憳" align="center" /> - <el-table-column prop="address" label="鏈烘杈呭姪鍛�" align="center" /> - <el-table-column prop="address" label="鍦版矡鐭╀綔涓氬憳" align="center" /> - <el-table-column prop="address" label="鍦版矡杈呭姪鍛�" align="center" /> - <el-table-column prop="address" label="鍒涘缓鏃ユ湡" align="center" /> - <el-table-column prop="address" label="鎿嶄綔" align="center"> - <template #default=""> - <el-button size="small" type="text" @click="Edit">缂栬緫</el-button> + <el-table-column + prop="templateName" + label="妯℃澘鍚嶇О" + align="center" + /> + <el-table-column prop="takeName" label="浠诲姟鍚嶇О" align="center" /> + <el-table-column prop="jiShuYuan" label="鎶�鏈憳" align="center" /> + <el-table-column prop="gongZhang" label="妫�淇伐闀�" align="center" /> + <el-table-column + prop="zhiJianYuan_Dq" + label="鐢垫皵璐ㄦ鍛�" + align="center" + /> + <el-table-column + prop="zhiJianYuan_Lc" + label="鏈烘璐ㄦ鍛�" + align="center" + /> + <el-table-column prop="liJu_Dq" label="鐢垫皵鐭╀綔涓氬憳" align="center" /> + <el-table-column prop="fuZhu_Dq" label="鐢垫皵杈呭姪鍛�" align="center" /> + <el-table-column prop="liJu_Lc" label="鏈烘鐭╀綔涓氬憳" align="center" /> + <el-table-column prop="fuZhu_Lc" label="鏈烘杈呭姪鍛�" align="center" /> + <el-table-column prop="liJu_Dq" label="鍦版矡鐭╀綔涓氬憳" align="center" /> + <el-table-column prop="fuZhu_Dg" label="鍦版矡杈呭姪鍛�" align="center" /> + <el-table-column prop="createDate" label="鍒涘缓鏃ユ湡" align="center" /> + <el-table-column label="鎿嶄綔" align="center"> + <template #default="scope"> + <el-button size="small" type="text" @click="Edit(scope.row)" + >缂栬緫</el-button + > </template> </el-table-column> </el-table> @@ -123,7 +156,11 @@ size="small" background layout="prev, pager, next" - :total="1" + :current-page="pageQuery.page" + :page-size="pageQuery.rows" + :total="pageTotal" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" /> </div> </div> @@ -133,7 +170,7 @@ v-model="dialogVisible" title="" width="60%" - :before-close="handleClose" + @close="handleClose(formRef)" top="2%" > <template #title> @@ -150,10 +187,15 @@ > </div> </template> - <el-form :model="form" label-width="auto" label-position="top"> + <el-form + :model="form" + label-width="auto" + label-position="top" + ref="formRef" + > <el-row :gutter="20"> <el-col :span="8"> - <el-form-item> + <el-form-item prop="takeName"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -163,11 +205,15 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.takeName" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="jiShuYuan"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -177,11 +223,15 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.jiShuYuan" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="gongZhang"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -191,7 +241,11 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.gongZhang" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> </el-row> @@ -208,7 +262,7 @@ </el-row> <el-row :gutter="20"> <el-col :span="8"> - <el-form-item> + <el-form-item prop="zhiJianYuan_Dq"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -218,18 +272,22 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.zhiJianYuan_Dq" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.quality" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="zhiJianYuan_Lc"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -239,18 +297,22 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.zhiJianYuan_Lc" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.quality" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="zhiJianYuan_Dg"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -260,12 +322,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.zhiJianYuan_Dg" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.quality" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> @@ -284,7 +350,7 @@ </el-row> <el-row :gutter="20"> <el-col :span="8"> - <el-form-item> + <el-form-item prop="liJu_Dg"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -294,18 +360,22 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.liJu_Dq" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.electric" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="fuZhu_Dg"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -315,12 +385,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.fuZhu_Dq" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.electric" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> @@ -339,7 +413,7 @@ </el-row> <el-row :gutter="20"> <el-col :span="8"> - <el-form-item> + <el-form-item prop="liJu_Lc"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -349,18 +423,22 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.liJu_Lc" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.mechanical" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="fuZhu_Lc"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -370,12 +448,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.fuZhu_Lc" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.mechanical" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> @@ -404,12 +486,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.liJu_Dg" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.trench" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> @@ -425,12 +511,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="form.fuZhu_Dg" + placeholder="璇烽�夋嫨" + size="small" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in UerTypeoptions.trench" + :key="item.userTrueName" + :label="item.userTrueName" + :value="item.userTrueName" /> </el-select> </el-form-item> @@ -449,7 +539,7 @@ <el-button size="small" type="primary" - @click="dialogVisible = false" + @click="SaveData(formRef)" style="height: 2rem; font-size: 0.88rem" > 淇濆瓨 @@ -460,19 +550,88 @@ </div> </template> <script setup> -import { ref, reactive } from "vue"; +import { ref, reactive, onMounted } from "vue"; +import { + GetTemplateList, + AddData, + UpdateData, + DeleteData, + ExportApi, +} from "@/api/newapi/Template"; +import { GetUerType } from "@/api/user"; +import { ElMessage } from "element-plus"; +import { formatTime } from "@/utils/index.js"; const queryForm = reactive({ selectName: "", selectTime: [], // 鏃堕棿鑼冨洿 + selectType: "", + selectInput: "", }); const tableData = ref([]); - -const options = ref([]); const props = { multiple: true }; - const table = ref(false); -const form = reactive({}); +//鏂板缓/缂栬緫 鎻愪氦鏁版嵁 +const form = ref({ + templateName: "", + templateGroup: "", + takeName: "", + jiShuYuan: "", + gongZhang: "", + zhiJianYuan_Dq: "", + zhiJianYuan_Lc: "", + zhiJianYuan_Dg: "", + liJu_Dq: "", + fuZhu_Dq: "", + liJu_Lc: "", + fuZhu_Lc: "", + liJu_Dg: "", + fuZhu_Dg: "", +}); + +const selectoptions = ref([ + { + value: "鐢垫皵", + label: "鐢垫皵", + }, + { + value: "鏈烘", + label: "鏈烘", + }, + { + value: "鍦版矡", + label: "鍦版矡", + }, +]); +const rules = reactive({ + templateName: [ + { required: true, message: "璇疯緭鍏ユā鏉垮悕绉�", trigger: "blur" }, + ], + takeName: [{ required: true, message: "璇疯緭鍏ヤ换鍔″悕绉�", trigger: "blur" }], + jiShuYuan: [{ required: true, message: "璇疯緭鍏ユ妧鏈憳", trigger: "blur" }], + gongZhang: [{ required: true, message: "璇疯緭鍏ュ伐闀�", trigger: "blur" }], + zhiJianYuan_Dq: [ + { required: true, message: "璇疯緭鍏ョ數姘旇川妫�鍛�", trigger: "blur" }, + ], + zhiJianYuan_Lc: [ + { required: true, message: "璇疯緭鍏ユ満姊拌川妫�鍛�", trigger: "blur" }, + ], + zhiJianYuan_Dg: [ + { required: true, message: "璇疯緭鍏ュ湴娌熻川妫�鍛�", trigger: "blur" }, + ], + liJu_Dq: [ + { required: true, message: "璇疯緭鍏ョ數姘斿姏鐭╀綔涓氬憳", trigger: "blur" }, + ], + fuZhu_Dq: [{ required: true, message: "璇疯緭鍏ョ數姘旇緟鍔╁憳", trigger: "blur" }], + liJu_Lc: [ + { required: true, message: "璇疯緭鍏ユ満姊板姏鐭╀綔涓氬憳", trigger: "blur" }, + ], + fuZhu_Lc: [{ required: true, message: "璇疯緭鍏ユ満姊拌緟鍔╁憳", trigger: "blur" }], + liJu_Dg: [ + { required: true, message: "璇疯緭鍏ュ湴娌熷姏鐭╀綔涓氬憳", trigger: "blur" }, + ], + fuZhu_Dg: [{ required: true, message: "璇疯緭鍏ュ湴娌熻緟鍔╁憳", trigger: "blur" }], +}); function cancelClick() { table.value = false; @@ -482,14 +641,206 @@ } //寮瑰嚭妗� const dialogVisible = ref(false); -//鍒犻櫎鏂规硶 -const add = () => { - dialogVisible.value = true; +const UerTypeoptions = ref({ + quality: [], //璐ㄦ + electric: [], //鐢垫皵 + mechanical: [], //鏈烘 + trench: [], //鍦版矡 +}); +const type = ref("鏂板缓"); +//娣诲姞鏂规硶 +const add = (val) => { + type.value = val; + GetUerType().then((res) => { + UerTypeoptions.value.quality = res.data.filter( + (item) => item.roleId != 1 && item.roleId == 2 + ); + UerTypeoptions.value.electric = res.data.filter( + (item) => item.roleId != 1 && item.roleId == 3 + ); + UerTypeoptions.value.mechanical = res.data.filter( + (item) => item.roleId != 1 && item.roleId == 4 + ); + UerTypeoptions.value.trench = res.data.filter( + (item) => item.roleId != 1 && item.roleId == 5 + ); + dialogVisible.value = true; + }); }; + //缂栬緫鏂规硶 -const Edit = () => { +const Edit = (val) => { + let obj = val; + type.value = "缂栬緫"; + form.value = Object.assign({}, obj); dialogVisible.value = true; + GetUerType().then((res) => { + UerTypeoptions.value.quality = res.data.filter( + (item) => item.roleId != 1 && item.roleId == 2 + ); + UerTypeoptions.value.electric = res.data.filter( + (item) => item.roleId != 1 && item.roleId == 3 + ); + UerTypeoptions.value.mechanical = res.data.filter( + (item) => item.roleId != 1 && item.roleId == 4 + ); + UerTypeoptions.value.trench = res.data.filter( + (item) => item.roleId != 1 && item.roleId == 5 + ); + dialogVisible.value = true; + }); }; +// 鑾峰彇鏁版嵁 +const getpagedata = () => {}; + +//鑾峰彇闇�瑕佸垹闄ょ殑鏁版嵁 +const deletid = ref([]); +const getSelectionRows = (val) => { + deletid.value = val.map((item) => item.templateID); + console.log(val, deletid.value); +}; +//鎵归噺鍒犻櫎鏂规硶 +const Delete = () => { + if (deletid.value.length == 0) { + ElMessage({ + message: "璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁", + type: "warning", + }); + return; + } + DeleteData(deletid.value).then((res) => { + if (res.code == 0) { + ElMessage({ + message: "鍒犻櫎鎴愬姛", + type: "success", + }); + getpagedata(); + } + }); +}; +const printExcel = () => { + // 鏌ヨ鏉′欢 + const startTime = formatTime(queryForm.selectTime[0]); + const endTime = formatTime(queryForm.selectTime[1]); + const filter = [ + { + name: queryForm.selectType, + value: queryForm.selectInput, + displayType: "String", + }, + { + name: "pustatus", + value: queryForm.selectName, + displayType: "String", + }, + { name: "createDate", value: startTime, displayType: "ThanOrEqual" }, + { name: "createDate", value: endTime, displayType: "LessOrEqual" }, + ]; + ExportApi({ + ...pageQuery.value, + filter, + }); +}; +//淇濆瓨 +const SaveData = async (formEl) => { + let data = { + ...form.value, + templateName: form.value.takeName, + }; + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + if (type.value == "鏂板缓") { + AddData(data).then((res) => { + if (res.code == 0) { + ElMessage({ + message: "娣诲姞鎴愬姛", + type: "success", + }); + dialogVisible.value = false; + initData(); + } + }); + } else { + UpdateData(data).then((res) => { + if (res.code == 0) { + ElMessage({ + message: "缂栬緫鎴愬姛", + type: "success", + }); + dialogVisible.value = false; + initData(); + } + }); + } + } else { + console.log("error submit!", fields); + } + }); +}; + +//鍒嗛〉璇锋眰鍙傛暟 +const pageQuery = ref({ + page: 1, //褰撳墠椤甸潰 + rows: 10, //姣忛〉鏄剧ず鏉℃暟 + order: "desc", //鎺掑簭鏂瑰紡 + sort: "createDate", //鎺掑簭瀛楁 + wheres: "", //鏉′欢鏌ヨ +}); + +//鍒嗛〉椤甸潰澶у皬鏀瑰彉 +const handleSizeChange = (val) => { + pageQuery.value.rows = val; + initData(); +}; + +//鍒嗛〉椤甸潰鏀瑰彉 +const handleCurrentChange = (val) => { + pageQuery.value.page = val; + initData(); +}; +const pageTotal = ref(0); +const initData = () => { + // 鏌ヨ鏉′欢 + const startTime = formatTime(queryForm.selectTime[0]); + const endTime = formatTime(queryForm.selectTime[1]); + const filter = [ + { + name: "", + value: queryForm.selectName, + displayType: "Contains", + }, + { name: "createDate", value: startTime, displayType: "ThanOrEqual" }, + { name: "createDate", value: endTime, displayType: "LessOrEqual" }, + ]; + GetTemplateList({ + ...pageQuery.value, + filter, + }).then((res) => { + tableData.value = res.rows; + pageTotal.value = res.total; + }); +}; + +//鏁版嵁妫�绱簨浠� +const handleQuery = () => { + pageQuery.value.page = 1; + initData(); +}; +const resetQuery = () => { + queryForm.value = { selectName: "", selectTime: [] }; + pageQuery.value.page = 1; + initData(); +}; +const formRef = ref(); +//閲嶇疆琛ㄥ崟 +const handleClose = (formEl) => { + if (!formEl) return; + formEl.resetFields(); +}; +onMounted(() => { + initData(); +}); </script> <style lang="scss" scoped> .Tasktemplates { -- Gitblit v1.9.3