From f90fbbc76d23340e4568dd4dadbab5f7f02a030f Mon Sep 17 00:00:00 2001 From: pengwei <2071057782@qq.com> Date: 星期一, 24 三月 2025 14:49:24 +0800 Subject: [PATCH] 3.24功能新增 --- 项目代码/client/src/views/tts/TaskManagement/Taskmanagement.vue | 832 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 711 insertions(+), 121 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TaskManagement/Taskmanagement.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TaskManagement/Taskmanagement.vue" index ccbbcb3..3943c65 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TaskManagement/Taskmanagement.vue" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TaskManagement/Taskmanagement.vue" @@ -26,24 +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: 8rem; height: 2rem; 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 type="primary" size="small" style="margin-left: 0.98rem" + <el-button + type="primary" + size="small" + style="margin-left: 0.98rem; height: 2rem" + @click="handleQuery" >鏌ヨ</el-button > - <el-button size="small">閲嶇疆</el-button> + <el-button size="small" @click="resetQuery" style="height: 2rem" + >閲嶇疆</el-button + > </div> <div class="btns"> <div style="display: flex; align-items: center"> <el-button type="primary" size="small" - @click="dialogVisible1 = true" + @click="addData" style=" width: 5.5rem; height: 2rem; @@ -51,7 +71,7 @@ display: flex; align-items: center; " - ><el-icon style="margin-right: 0.2rem"><Plus /></el-icon + ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon >鏂板缓</el-button > <el-button @@ -65,11 +85,11 @@ display: flex; align-items: center; " - ><el-icon style="margin-right: 0.2rem"><Plus /></el-icon + ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon >鎵嬪姩鑾峰彇</el-button > <el-button - @click="dialogVisible = true" + @click="importDialogVisible = true" size="small" style="width: 5.5rem; height: 2rem; font-size: 0.88rem" >鎵归噺瀵煎叆</el-button @@ -77,9 +97,11 @@ <el-button size="small" style="width: 5.5rem; height: 2rem; font-size: 0.88rem" + @click="printExcel" >鎵归噺瀵煎嚭</el-button > <el-button + @click="deleteAll" size="small" style="width: 5.5rem; height: 2rem; font-size: 0.88rem" >鎵归噺鍒犻櫎</el-button @@ -100,7 +122,9 @@ </div> <div style="margin-top: 1rem; height: 100%"> <el-table + empty-text="鏆傛棤鏁版嵁" :data="tableData" + height="500" style="width: 100%" :header-cell-style="{ background: 'rgba(250,250,250,1)', @@ -114,23 +138,84 @@ fontSize: '0.88rem', height: '3rem', }" + @select="SelectionChange" > - <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"> - <template #default=""> - <el-button size="small" type="text" @click="Send" + <el-table-column type="selection" align="center" min-width="1%" /> + <el-table-column + prop="trainKind" + label="杞﹀瀷" + align="center" + min-width="2%" + /> + <el-table-column + prop="trainNum" + label="杞︾粍" + align="center" + min-width="2%" + /> + <el-table-column + prop="track" + label="鑲¢亾" + align="center" + min-width="2%" + /> + <el-table-column + prop="coachNum" + label="杞﹀帰鍙蜂綅缃�" + align="center" + min-width="2%" + /> + <el-table-column + prop="bogie" + label="杞悜鏋朵綅缃�" + align="center" + min-width="2%" + /> + <el-table-column + prop="processDept" + label="妫�淇彮缁�" + align="center" + min-width="3%" + /> + <el-table-column + prop="taskstatus" + label="浠诲姟鐘舵��" + align="center" + min-width="3%" + > + <template #default="scope"> + <span style="color: #ff5400" v-if="scope.row.taskstatus == 0" + >寰呮淳宸�</span + > + <span style="color: #c4ccd5" v-if="scope.row.taskstatus == 1" + >宸叉淳宸�</span + > + </template> + </el-table-column> + <el-table-column + prop="address" + label="妫�淇棩鏈�" + align="center" + min-width="3%" + /> + <el-table-column + prop="createTime" + label="鍒涘缓鏃ユ湡" + align="center" + min-width="3%" + /> + <el-table-column label="鎿嶄綔" align="center" min-width="3%"> + <template #default="scope"> + <el-button + :disabled="scope.row.taskstatus == 1" + size="small" + type="text" + @click="Send(scope.row)" >娲句换鍔�</el-button > - <el-button size="small" type="text" @click="delt">缂栬緫</el-button> + <el-button size="small" type="text" @click="Editdata(scope.row)" + >缂栬緫</el-button + > </template> </el-table-column> </el-table> @@ -148,16 +233,20 @@ 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> - <!-- 浠诲姟淇℃伅寮瑰嚭妗� --> + <!-- 鏂板缓/缂栬緫浠诲姟淇℃伅寮瑰嚭妗� --> <el-dialog v-model="dialogVisible1" title="" width="60%" - :before-close="handleClose" + @close="resetForm(ruleFormRef)" style="margin-top: 15.625rem" > <template #title> @@ -174,10 +263,37 @@ > </div> </template> - <el-form :model="form" label-width="auto" label-position="top"> + <el-form + :model="form" + label-width="auto" + label-position="top" + :rules="rules" + ref="ruleFormRef" + :hide-required-asterisk="true" + > + <el-row> + <el-col :span="24"> + <el-form-item prop="takeName"> + <template #label> + <div style="display: flex; align-items: flex-end"> + <span style="color: red; margin-right: 0.2rem">*</span> + <span + style="font-size: 0.88rem; color: black; font-weight: bold" + >浠诲姟鍚嶇О</span + > + </div> + </template> + <el-input + size="small" + v-model="form.takeName" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + </el-row> <el-row :gutter="20"> <el-col :span="8"> - <el-form-item> + <el-form-item prop="trainKind"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -187,11 +303,15 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.trainKind" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="trainNum"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -201,11 +321,15 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.trainNum" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="track"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -215,13 +339,17 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.track" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="8"> - <el-form-item> + <el-form-item prop="coachNum"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -231,11 +359,15 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.coachNum" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="bogie"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -245,11 +377,15 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.bogie" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> <el-col :span="8"> - <el-form-item> + <el-form-item prop="processDept"> <template #label> <div style="display: flex; align-items: flex-end"> <span style="color: red; margin-right: 0.2rem">*</span> @@ -259,7 +395,11 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="form.processDept" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> </el-row> @@ -269,7 +409,7 @@ <el-button size="small" type="primary" - @click="dialogVisible1 = false" + @click="AddNJinfomclick(ruleFormRef)" style="height: 2rem; font-size: 0.88rem" > 纭 @@ -289,7 +429,7 @@ v-model="SenddialogVisible" title="" width="60%" - :before-close="handleClose" + @close="resetForm(sendformRef)" top="2%" > <template #title> @@ -306,7 +446,13 @@ > </div> </template> - <el-form :model="form" label-width="auto" label-position="top"> + <el-form + :model="sendform" + label-width="auto" + label-position="top" + :rules="rules" + ref="sendformRef" + > <el-form-item> <template #label> <div style="display: flex; align-items: flex-end"> @@ -316,12 +462,17 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.templateID" + placeholder="璇烽�夋嫨" + size="small" + @change="getTemplate" + > <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in temopitions" + :key="item.templateID" + :label="item.templateName" + :value="item.templateID" /> </el-select> </el-form-item> @@ -337,7 +488,11 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="sendform.templateName" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> <el-col :span="8"> @@ -351,7 +506,11 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="sendform.jiShuYuan" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> <el-col :span="8"> @@ -365,7 +524,11 @@ > </div> </template> - <el-input size="small" v-model="form.name" placeholder="璇疯緭鍏�" /> + <el-input + size="small" + v-model="sendform.gongZhang" + placeholder="璇疯緭鍏�" + /> </el-form-item> </el-col> </el-row> @@ -392,12 +555,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -413,12 +580,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -434,12 +605,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -468,12 +643,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -489,12 +668,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -523,12 +706,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -544,12 +731,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -578,12 +769,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -599,12 +794,16 @@ > </div> </template> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select + v-model="sendform.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> @@ -622,7 +821,7 @@ <el-button size="small" type="primary" - @click="SenddialogVisible = false" + @click="savesublit(sendformRef)" style="height: 2rem; font-size: 0.88rem" > 淇濆瓨妯℃澘骞舵彁浜� @@ -630,7 +829,7 @@ <el-button size="small" type="primary" - @click="SenddialogVisible = false" + @click="sublit(sendformRef)" style="height: 2rem; font-size: 0.88rem" > 鎻愪氦 @@ -640,11 +839,11 @@ </el-dialog> <!-- 鎵归噺瀵煎叆寮瑰嚭妗� --> - <el-dialog + <!-- <el-dialog v-model="dialogVisible" title="" width="60%" - :before-close="handleClose" + @close="handleClose" style="margin-top: 15.625rem" > <template #title> @@ -688,66 +887,453 @@ > </div> </template> + </el-dialog> --> + <!-- 妗嗘灦鎵归噺瀵煎叆寮瑰嚭妗� --> + <el-dialog v-model="importDialogVisible"> + <UploadExcel + @importExcelAfter="importExcelAfter" + url="api/NjTask/Import" + :template="{ + url: 'api/NjTask/DownLoadTemplate', + fileName: '浠诲姟妯℃澘', + }" + /> </el-dialog> </div> </template> <script setup> -import { ref, reactive } from "vue"; +import { ref, reactive, onMounted, toRef } from "vue"; import { useRouter } from "vue-router"; +import { + GetPageData, + AddNJinfom, + Submit, + Submtandsave, + GetTemplate, + GetTemplateList, + Delete, + ExportApi, + Update, +} from "@/api/newapi/NjTask"; +import { GetUerType } from "@/api/user"; +import { formatTime } from "@/utils/index.js"; +import { ElMessage } from "element-plus"; +import UploadExcel from "@/components/basic/UploadExcel.vue"; +//浣跨敤璺敱 const router = useRouter(); -const queryForm = reactive({ +// 鍒濆鍖栨暟鎹� +const obj = { selectName: "", selectTime: [], // 鏃堕棿鑼冨洿 + selectType: "", //閫夋嫨鐨勭被鍨� + selectInput: "", //杈撳叆鐨勬暟鎹� +}; +//鎼滅储浼犵殑鏁版嵁 +const queryForm = toRef({ ...obj }); +//椤甸潰鐨勬暟閲� +const pageTotal = ref(0); +//琛ㄥ崟鐨勬暟鎹� +const tableData = ref([]); +const UerTypeoptions = ref({ + quality: [], //璐ㄦ + electric: [], //鐢垫皵 + mechanical: [], //鏈烘 + trench: [], //鍦版矡 }); -const tableData = ref([]); - -const options = ref([]); -const props = { multiple: true }; - -const table = ref(false); -const form = reactive({}); - -function cancelClick() { - table.value = false; -} -function confirmClick() { - table.value = false; -} +//琛ㄥ崟楠岃瘉瑙勫垯 +const rules = reactive({ + takeName: [{ required: true, message: "璇疯緭鍏ヤ换鍔″悕绉�", trigger: "blur" }], + bogie: [{ required: true, message: "璇疯緭鍏ヨ浆鍚戞灦", trigger: "blur" }], + coachNum: [{ required: true, message: "璇疯緭鍏ヨ溅鍘㈠彿", trigger: "blur" }], + processDept: [{ required: true, message: "璇疯緭鍏ユ淇彮缁�", trigger: "blur" }], + track: [{ required: true, message: "璇疯緭鍏ヨ偂閬�", trigger: "blur" }], + trainKind: [{ required: true, message: "璇疯緭鍏ヨ溅鍨�", trigger: "blur" }], + trainNum: [{ required: true, message: "璇疯緭鍏ヨ溅缁勫彿", trigger: "blur" }], +}); +//鏂板缓缂栬緫琛ㄥ崟ref鍊� +const ruleFormRef = ref(); +//娣诲姞/缂栬緫鐨勮〃鍗曟暟鎹� +const form = ref({ + takeName: "", //浠诲姟鍚嶇О + bogie: "", //杞悜鏋� + coachNum: "", //杞﹀帰 + processDept: "", //妫�淇彮缁� + track: "", //鑲¢亾 + trainKind: "", //杞﹀瀷 + trainNum: "", //杞︾粍鍙� + createDate: formatTime(new Date()), //鍒涘缓鏃堕棿 + creater: JSON.parse(localStorage.getItem("user")).userName, //鍒涘缓浜� +}); //鍒犻櫎 const dialogVisible1 = ref(false); //娲句换鍔� const SenddialogVisible = ref(false); +//娲句换鍔¤〃鍗時ef鍊� +const sendformRef = ref(); //鎵归噺瀵煎叆 const dialogVisible = ref(false); //鎵归噺瀵煎叆鏁版嵁 const gridtableData = ref([]); -//娲句换鍔℃柟娉� -const Send = () => { - SenddialogVisible.value = true; +//妯℃澘鍒楄〃 +const temopitions = ref([]); + +const props = { multiple: true }; +const table = ref(false); +const type = ref("鏂板缓"); +//鎼滅储閫夋嫨鐨勫瓧娈� +const selectoptions = reactive([ + { label: "杞﹀瀷", value: "trainkind" }, + { label: "杞︾粍", value: "trainNum" }, + { label: "鑲¢亾", value: "track" }, + { label: "妫�淇彮缁�", value: "processkept" }, +]); +//鎻愪氦鐨勬暟鎹彉閲� +const sendform = ref({}); +//鎵归噺瀵煎叆 +const importDialogVisible = ref(false); +//鐩戝惉鏂囦欢涓婁紶鎴愬姛鐨勫洖璋� +const importExcelAfter = () => { + importDialogVisible.value = false; + initData(); }; -//鍒犻櫎鏂规硶 -const delt = () => { + +//鏂板缓浠诲姟淇℃伅 +const AddNJinfomclick = async (formEl) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + if (type.value == "鏂板缓") { + AddNJinfom(form.value).then((res) => { + if (res.code == 0) { + ElMessage({ + message: "鍒涘缓鎴愬姛", + type: "success", + }); + dialogVisible1.value = false; + initData(); + } + }); + } else { + //缂栬緫 + Update(form.value).then((res) => { + if (res.code == 0) { + ElMessage({ + message: "淇敼鎴愬姛", + type: "success", + }); + dialogVisible1.value = false; + initData(); + } + }); + } + } else { + console.log("error submit!", fields); + } + }); +}; +//鏂板缓浠诲姟淇℃伅 +const addData = () => { + type.value = "鏂板缓"; dialogVisible1.value = true; }; +//缂栬緫浠诲姟淇℃伅 +const Editdata = (row) => { + let obj = Object.assign({}, row); + type.value = "缂栬緫"; + dialogVisible1.value = true; + form.value = obj; +}; + +//鎻愪氦 +const sublit = async (formEl) => { + let data = { + njtakeid: sendform.value.nJtaskID, + takename: sendform.value.takeName, + jishuyuan: sendform.value.jiShuYuan, + zhijianyuan_lc: sendform.value.zhiJianYuan_Lc, + zhijianyuan_dg: sendform.value.zhiJianYuan_Dg, + zhijianyuan_dq: sendform.value.zhiJianYuan_Dq, + gongzhang: sendform.value.gongZhang, + liju_lc: sendform.value.liJu_Lc, + fuzhu_lc: sendform.value.fuZhu_Lc, + liju_dg: sendform.value.liJu_Dg, + fuzhu_dg: sendform.value.fuZhu_Dg, + liju_dq: sendform.value.liJu_Dq, + fuzhu_dq: sendform.value.fuZhu_Dq, + }; + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + Submit(data).then((res) => { + ElMessage({ + message: res.message, + type: "success", + }); + SenddialogVisible.value = false; + initData(); + }); + } else { + console.log("error submit!", fields); + } + }); +}; +//鎻愪氦淇濆瓨 +const savesublit = async (formEl) => { + let data = { + tpid: sendform.value.templateID, + njtakeid: sendform.value.nJtaskID, + takename: sendform.value.takeName, + jishuyuan: sendform.value.jiShuYuan, + zhijianyuan_lc: sendform.value.zhiJianYuan_Lc, + zhijianyuan_dg: sendform.value.zhiJianYuan_Dg, + zhijianyuan_dq: sendform.value.zhiJianYuan_Dq, + gongzhang: sendform.value.gongZhang, + liju_lc: sendform.value.liJu_Lc, + fuzhu_lc: sendform.value.fuZhu_Lc, + liju_dg: sendform.value.liJu_Dg, + fuzhu_dg: sendform.value.fuZhu_Dg, + liju_dq: sendform.value.liJu_Dq, + fuzhu_dq: sendform.value.fuZhu_Dq, + }; + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + Submtandsave(data).then((res) => { + ElMessage({ + message: res.message, + type: "success", + }); + initData(); + SenddialogVisible.value = false; + }); + } else { + console.log("error submit!", fields); + } + }); +}; + +//鏁版嵁瀵煎嚭鐨勬柟娉� +const printExcel = () => { + // 鏌ヨ鏉′欢 + const startTime = formatTime(queryForm.value.selectTime[0]); + const endTime = formatTime(queryForm.value.selectTime[1]); + const filter = [ + { + name: queryForm.value.selectType, + value: queryForm.value.selectInput, + displayType: "String", + }, + + { name: "createTime", value: startTime, displayType: "ThanOrEqual" }, + { name: "createTime", value: endTime, displayType: "LessOrEqual" }, + ]; + ExportApi({ + ...pageQuery.value, + filter, + }); +}; +// quality: [], //璐ㄦ +// electric: [], //鐢垫皵 +// mechanical: [], //鏈烘 +// trench: [], //鍦版矡 +//娲句换鍔℃柟娉� +const Send = (val) => { + SenddialogVisible.value = true; + sendform.value = { ...val }; + getTemplateList(); + GetUerType().then((res) => { + UerTypeoptions.value.quality = res.data.filter((item) => { + return item.user_Id != 1 && item.roleName.substring(2, 4) == "璐ㄦ"; + }); + UerTypeoptions.value.electric = res.data.filter( + (item) => + item.user_Id != 1 && + item.roleName.substring(2, 4) != "璐ㄦ" && + item.roleName.substring(0, 2) == "鐢垫皵" + ); + UerTypeoptions.value.mechanical = res.data.filter( + (item) => + item.user_Id != 1 && + item.roleName.substring(2, 4) != "璐ㄦ" && + item.roleName.substring(0, 2) == "鏈烘" + ); + UerTypeoptions.value.trench = res.data.filter( + (item) => + item.user_Id != 1 && + item.roleName.substring(2, 4) != "璐ㄦ" && + item.roleName.substring(0, 2) == "鍦版矡" + ); + }); + console.log(UerTypeoptions.value); +}; +//鑾峰彇鎵�鏈夋ā鏉� +const getTemplateList = () => { + GetTemplateList({ + page: 1, + rows: 1000, + total: 1000, + tableName: "string", + sort: "string", + order: "string", + wheres: "string", + export: true, + value: "string", + filter: [ + { + name: "string", + value: "string", + displayType: "string", + }, + ], + }).then((res) => { + temopitions.value = res.rows; + }); +}; +//鑾峰彇妯℃澘鍐呭 +const getTemplate = () => { + GetTemplate(sendform.value.templateID).then((res) => { + sendform.value = { ...sendform.value, ...res.data[0] }; + }); +}; +//鎵归噺鍒犻櫎 +const ids = ref([]); //鎵归噺鍒犻櫎鐨刬d +const SelectionChange = (val) => { + //鑾峰彇鎵归噺鍒犻櫎鐨刬d + ids.value = []; + ids.value = val.map((item) => item.id); +}; +//鍒犻櫎閫変腑鐨勬暟鎹� +const deleteAll = () => { + if (ids.value.length == 0) { + ElMessage({ message: "璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁", type: "error" }); + return; + } + Delete(ids.value).then((res) => { + ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" }); + initData(); + }); +}; + +//鍒嗛〉璇锋眰鍙傛暟 +const pageQuery = ref({ + page: 1, //褰撳墠椤甸潰 + rows: 10, //姣忛〉鏄剧ず鏉℃暟 + order: "desc", //鎺掑簭鏂瑰紡 + sort: "", //鎺掑簭瀛楁 + wheres: "", //鏉′欢鏌ヨ +}); + +//鍒嗛〉椤甸潰澶у皬鏀瑰彉 +const handleSizeChange = (val) => { + pageQuery.value.rows = val; + initData(); +}; + +//鍒嗛〉椤甸潰鏀瑰彉 +const handleCurrentChange = (val) => { + pageQuery.value.page = val; + initData(); +}; + +//椤甸潰鍒濆鍖栨柟娉� +const initData = () => { + // 鏌ヨ鏉′欢 + const startTime = formatTime(queryForm.value.selectTime[0]); + const endTime = formatTime(queryForm.value.selectTime[1]); + const filter = [ + { + name: queryForm.value.selectType, + value: queryForm.value.selectInput, + displayType: "like", + }, + { name: "createtime", value: startTime, displayType: "ThanOrEqual" }, + { name: "createtime", value: endTime, displayType: "LessOrEqual" }, + ]; + GetPageData({ + ...pageQuery.value, + filter, + }).then((res) => { + tableData.value = res.rows; + pageTotal.value = res.total; + }); +}; + +//鏁版嵁妫�绱簨浠� +const handleQuery = () => { + pageQuery.value.page = 1; + initData(); +}; +//閲嶇疆琛ㄥ崟 +const resetForm = (formEl) => { + if (!formEl) return; + formEl.resetFields(); + form.value = { + bogie: "", //杞悜鏋� + coachNum: "", //杞﹀帰 + processDept: "", //妫�淇彮缁� + track: "", //鑲¢亾 + trainKind: "", //杞﹀瀷 + trainNum: "", //杞︾粍鍙� + creater: "", + createDate: formatTime(new Date()), //鍒涘缓鏃堕棿 + }; +}; +//閲嶇疆鏂规硶 +const resetQuery = () => { + queryForm.value = Object.assign({}, obj); + pageQuery.value.page = 1; + initData(); +}; + +onMounted(() => { + initData(); + GetUerType().then((res) => { + UerTypeoptions.value.quality = res.data.filter( + (item) => item.roleId != 1 && item.roleName.substring(2, 2) == "璐ㄦ" + ); + UerTypeoptions.value.electric = res.data.filter( + (item) => + item.roleId != 1 && + item.roleName.substring(2, 2) != "璐ㄦ" && + item.roleName.substring(0, 2) == "鐢垫皵" + ); + UerTypeoptions.value.mechanical = res.data.filter( + (item) => + item.roleId != 1 && + item.roleName.substring(2, 2) != "璐ㄦ" && + item.roleName.substring(0, 2) == "鏈烘" + ); + UerTypeoptions.value.trench = res.data.filter( + (item) => + item.roleId != 1 && + item.roleName.substring(2, 2) != "璐ㄦ" && + item.roleName.substring(0, 2) == "鍦版矡" + ); + }); +}); </script> <style lang="scss" scoped> .Taskmanagement { display: flex; background-color: #fff; + .content { width: 100%; display: flex; flex-direction: column; + .serch { display: flex; margin-top: 1.31rem; align-items: center; + .time_box { display: flex; align-items: center; text-align: center; margin-left: 0.98rem; + .time { box-sizing: border-box; width: 6.88rem; @@ -761,24 +1347,26 @@ justify-content: center; } } + .serch_box { display: flex; align-items: center; text-align: center; margin-left: 0.98rem; border-radius: 0.38rem; + .serchb { box-sizing: border-box; width: 6.88rem; height: 2rem; text-align: center; - border: 0.06rem solid rgba(222, 222, 222, 1); - border-radius: 0.25rem 0 0 0.25rem; + font-size: 0.75rem; display: flex; align-items: center; justify-content: center; } + input { box-sizing: border-box; outline: none; @@ -791,6 +1379,7 @@ } } } + .btns { display: flex; justify-content: space-between; @@ -807,6 +1396,7 @@ .confirmButtonClass { margin-right: 10px; } + .el-message-box .el-message-box__btns { flex-direction: row-reverse !important; justify-content: normal !important; -- Gitblit v1.9.3