From 366612bd8e8b88d02a98edf508f96d7add23ff9f Mon Sep 17 00:00:00 2001 From: pengwei <2071057782@qq.com> Date: 星期日, 27 四月 2025 16:03:38 +0800 Subject: [PATCH] 功能新增 --- 项目代码/client/src/views/tts/CraftCenter/Craftcenter.vue | 976 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 650 insertions(+), 326 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/CraftCenter/Craftcenter.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/CraftCenter/Craftcenter.vue" index 9ba3afa..dd4bc92 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/CraftCenter/Craftcenter.vue" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/CraftCenter/Craftcenter.vue" @@ -34,10 +34,14 @@ <span>姝や负浠诲姟浣滅敤涓數姘旂殑鐨勮鎯呮楠ゅ伐鑹恒��</span> <div style="display: flex; margin-top: 0.81rem"> <span style="margin-right: 1.25rem" - >姝ラ锛歿{ electric ? electric.maxNodal : "0" }}</span + >姝ラ锛歿{ + electric.length != 0 ? electric[0].maxNodal : "0" + }}</span > <span - >濂楃瓛鏁伴噺锛歿{ electric ? electric.sumTorqueSum : "0" }}</span + >濂楃瓛鏁伴噺锛歿{ + electric != 0 ? electric[0].sumTorqueSum : "0" + }}</span > </div> </div> @@ -102,11 +106,13 @@ <span>姝や负浠诲姟浣滅敤涓満姊扮殑鐨勮鎯呮楠ゅ伐鑹恒��</span> <div style="display: flex; margin-top: 0.81rem"> <span style="margin-right: 1.25rem" - >姝ラ锛歿{ mechanical ? mechanical.maxNodal : "0" }}</span + >姝ラ锛歿{ + mechanical != 0 ? mechanical[0].maxNodal : "0" + }}</span > <span >濂楃瓛鏁伴噺锛歿{ - mechanical ? mechanical.sumTorqueSum : "0" + mechanical.length != 0 ? mechanical[0].sumTorqueSum : "0" }}</span > </div> @@ -172,9 +178,15 @@ <span>姝や负浠诲姟浣滅敤涓湴娌熺殑鐨勮鎯呮楠ゅ伐鑹恒��</span> <div style="display: flex; margin-top: 0.81rem"> <span style="margin-right: 1.25rem" - >姝ラ锛歿{ trench ? trench.maxNodal : "0" }}</span + >姝ラ锛歿{ + trench.length != 0 ? trench[0].maxNodal : "0" + }}</span > - <span>濂楃瓛鏁伴噺锛歿{ trench ? trench.sumTorqueSum : "0" }}</span> + <span + >濂楃瓛鏁伴噺锛歿{ + trench.length != 0 ? trench[0].sumTorqueSum : "0" + }}</span + > </div> </div> </div> @@ -225,9 +237,12 @@ > {{ title }} </h4> - <el-icon size="25" @click="close"><CloseBold /></el-icon> + <el-icon size="25" @click="close"> + <CloseBold /> + </el-icon> </div> </template> + <div> <div class="head"> <div class="serch"> @@ -255,7 +270,7 @@ size="small" /> </div> - <!-- <div class="serch_box"> + <div class="serch_box"> <div class="serchb"> <el-select v-model="queryForm.selectType" @@ -276,7 +291,7 @@ placeholder="璇疯緭鍏ュ叧閿瘝鎼滅储" style="border-left: 0.06rem solid #e2e2e2" /> - </div> --> + </div> <el-button type="primary" size="small" @@ -298,6 +313,7 @@ > </div> <el-table + empty-text="鏆傛棤鏁版嵁" style="margin-top: 1.13rem" :data="gridData" height="430" @@ -318,7 +334,7 @@ border: '0.01rem solid #eee', }" > - <el-table-column prop="setpNum" label="搴忓彿" min-width="2%" /> + <el-table-column prop="nodal" label="搴忓彿" min-width="2%" /> <el-table-column prop="craftsStep" label="宸ヨ壓椤剁偣/姝ラ" @@ -330,10 +346,10 @@ min-width="5%" /> <el-table-column prop="tools" label="宸ュ叿" min-width="2%" /> - <el-table-column prop="date" label="鐗╂枡" min-width="1%" /> + <el-table-column prop="material" label="鐗╂枡" min-width="1%" /> <!-- <el-table-column prop="date" label="鍥剧墖瑙嗛" min-width="2%" /> --> <el-table-column prop="" label="鏄惁娑夊強" min-width="2%" /> - <el-table-column prop="nodal" label="鎺掑簭" min-width="1%" /> + <el-table-column prop="setpNum" label="鎺掑簭" min-width="1%" /> <el-table-column prop="date" label="鍒涘缓浜�" min-width="2%"> <template #default=""> {{ user }} @@ -348,7 +364,9 @@ @click="Editcraft(scope.row, '缂栬緫')" >缂栬緫</el-button > - <el-button type="text" size="small">鍒犻櫎</el-button> + <el-button type="text" size="small" @click="delProcess(scope.row)" + >鍒犻櫎</el-button + > </template> </el-table-column> </el-table> @@ -362,7 +380,7 @@ title="宸ヨ壓淇℃伅" width="50%" :show-close="false" - @close="handleClose" + @close="resetForm(ruleFormRef)" > <template #header="{ titleId, titleClass }"> <div class="my-craftheader"> @@ -375,54 +393,72 @@ </h4> </div> </template> - <el-form - :model="form" - label-width="auto" - label-position="top" - :rules="rules" - ref="ruleFormRef" - > - <el-row :gutter="10"> - <el-col :span="16" - ><el-form-item prop="craftsStep"> - <template #label> - <span style="font-size: 0.88rem; color: black" - >宸ヨ壓椤剁偣/姝ラ</span - > - </template> - <el-input - size="small" - v-model="form.craftsStep" - placeholder="璇疯緭鍏�" - style="height: 2rem" - /> </el-form-item - ></el-col> - <el-col :span="8" - ><el-form-item prop="DeviceCode"> - <template #label> - <span style="font-size: 0.88rem; color: black">鐗╂枡</span> - </template> - <el-select - v-model="WLvalue" - placeholder="璇烽�夋嫨" - multiple - filterable - :remote-method="remoteMethod" - :loading="loading" - size="small" - style="width: 240px" - > - <el-option - v-for="item in WLoptions" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-select> </el-form-item - ></el-col> - </el-row> - <el-row :gutter="10"> - <el-col :span="8" + <el-scrollbar height="44rem"> + <el-form + :model="form" + label-width="auto" + label-position="top" + :rules="rules" + ref="ruleFormRef" + > + <el-row :gutter="10"> + <el-col :span="8" + ><el-form-item prop="nodal"> + <template #label> + <span style="font-size: 0.88rem; color: black">搴忓彿</span> + </template> + <el-input + size="small" + v-model.number="form.nodal" + placeholder="璇疯緭鍏�" + style="height: 2rem" + /> </el-form-item + ></el-col> + + <el-col :span="8" + ><el-form-item prop="setpNum"> + <template #label> + <span style="font-size: 0.88rem; color: black">鎺掑簭</span> + </template> + <el-input + size="small" + v-model.number="form.setpNum" + placeholder="璇疯緭鍏�" + style="height: 2rem" + /> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item prop="DeviceCode"> + <template #label> + <span style="font-size: 0.88rem; color: black">鐗╂枡</span> + </template> + <el-input + v-model="form.material" + style="height: 2rem" + placeholder="璇疯緭鍏�" + /> </el-form-item + ></el-col> + </el-row> + + <el-row :gutter="10"> + <el-col + ><el-form-item prop="craftsStep"> + <template #label> + <span style="font-size: 0.88rem; color: black" + >宸ヨ壓椤剁偣/姝ラ</span + > + </template> + <el-input + size="small" + v-model="form.craftsStep" + placeholder="璇疯緭鍏�" + style="height: 2rem" + /> </el-form-item + ></el-col> + </el-row> + + <el-row :gutter="10"> + <!-- <el-col :span="8" ><el-form-item prop="isinvolved"> <template #label> <span style="font-size: 0.88rem; color: black">鏄惁娑夊強</span> @@ -440,44 +476,106 @@ :value="item.value" /> </el-select> </el-form-item - ></el-col> - <el-col :span="8" - ><el-form-item prop="sort"> - <template #label> - <span style="font-size: 0.88rem; color: black">鎺掑簭</span> - </template> - <el-input - size="small" - v-model="form.setpNum" - placeholder="璇疯緭鍏�" - style="height: 2rem" - /> </el-form-item - ></el-col> - <el-col :span="8" - ><el-form-item prop="tools"> - <template #label> - <span style="font-size: 0.88rem; color: black">宸ュ叿</span> - </template> - <el-select - v-model="form.tools" - placeholder="璇烽�夋嫨" - multiple - filterable - :remote-method="GJremoteMethod" - :loading="GJloading" - size="small" - style="width: 240px" - value-key="id" - > - <el-option - v-for="item in GJoptions" - :key="item.id" - :label="item.toolName" - :value="item" - /> </el-select></el-form-item - ></el-col> - </el-row> - <!-- <el-row> + ></el-col> --> + <el-col :span="8" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black">宸ュ叿</span> + </div> + </template> + <el-select + style="height: 2rem" + v-model="tools" + placeholder="璇烽�夋嫨" + multiple + filterable + :remote-method="GJremoteMethod" + :loading="GJloading" + size="small" + value-key="id" + > + <el-option + v-for="item in GJoptions" + :key="item.id" + :label="item.toolName" + :value="item" + /> </el-select></el-form-item + ></el-col> + + <el-col :span="4" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black" + >绗竴娆℃壄鍔涚殑鍊�</span + > + </div> + </template> + <el-input + size="small" + v-model="form.torqueOne" + placeholder="璇疯緭鍏�" + style="height: 2rem" + > + <template #suffix> + <span style="font-size: 0.88rem; color: black">N*m</span> + </template> + </el-input> + </el-form-item></el-col + > + + <el-col :span="4" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black">鏁伴噺</span> + </div> + </template> + <el-input + size="small" + v-model="form.torqueOneQuantity" + placeholder="璇疯緭鍏�" + style="height: 2rem" /></el-form-item + ></el-col> + + <el-col :span="4" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black" + >绗簩娆℃壄鍔涚殑鍊�</span + > + </div> + </template> + <el-input + size="small" + v-model="form.torqueTwo" + placeholder="璇疯緭鍏�" + style="height: 2rem" + > + <template #suffix> + <span style="font-size: 0.88rem; color: black">N*m</span> + </template> + </el-input></el-form-item + ></el-col + > + + <el-col :span="4" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black">鏁伴噺</span> + </div> + </template> + <el-input + size="small" + v-model="form.torqueTwoQuantity" + placeholder="璇疯緭鍏�" + style="height: 2rem" /></el-form-item + ></el-col> + </el-row> + <!-- <el-row> <el-form-item prop="Unit"> <template #label ><span style="font-size: 0.88rem; color: black" @@ -526,131 +624,154 @@ </el-upload> </el-form-item> </el-row> --> - <el-row> - <h4 - style=" - color: rgba(16, 16, 16, 1); - font-size: 1.13rem; - font-weight: bold; - " - > - 宸ヨ壓鍐呭 - </h4> - </el-row> - <el-row> - <el-col> - <el-form-item prop="craftContent"> - <template #label> - <span style="font-size: 0.88rem; color: black">鍐呭鎻忚堪</span> - </template> - <el-input v-model="form.craftContent" placeholder="璇疯緭鍏�" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-form-item prop="Unit"> - <template #label> - <span style="font-size: 0.88rem; color: black">閫夋嫨濂楃瓛</span> - </template> - <div + <el-row> + <h4 style=" - display: flex; - justify-content: space-between; - width: 32.5rem; - height: 25rem; + color: rgba(16, 16, 16, 1); + font-size: 1.13rem; + font-weight: bold; " > - <div style="width: 50%; height: 100%; background: #f5f5f5"> - <div - style=" - padding: 0.88rem 0.88rem 0 0.88rem; - box-sizing: border-box; - " - > - <el-input - placeholder="璇疯緭鍏ュ唴瀹�" - style="height: 2rem" - ></el-input> + 宸ヨ壓鍐呭 + </h4> + </el-row> + <el-row> + <el-col> + <el-form-item prop="craftContent"> + <template #label> + <span style="font-size: 0.88rem; color: black">鍐呭鎻忚堪</span> + </template> + <el-input + type="textarea" + :rows="3" + v-model="form.craftContent" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-form-item prop="checkList"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black">閫夋嫨濂楃瓛</span> + </div> + </template> + <div + style=" + display: flex; + justify-content: space-between; + width: 32.5rem; + height: 25rem; + " + > + <div style="width: 50%; height: 100%; background: #f5f5f5"> <div - style="height: 1.25rem; display: flex; align-items: center" + style=" + padding: 0.88rem 0.88rem 0 0.88rem; + box-sizing: border-box; + " > - <span - style="color: rgba(28, 31, 35, 0.8); font-size: 0.75rem" - >鍏眥{ checkList.length }}椤�</span - ><span + <!-- <el-input + placeholder="鎼滅储" + style="height: 2rem; background: #f5f5f5; border: none" + :prefix-icon="Search" + v-model="value" + ></el-input> --> + <div + style=" + height: 1.25rem; + display: flex; + align-items: center; + " + > + <span + style="color: rgba(28, 31, 35, 0.8); font-size: 0.75rem" + >鍏眥{ checkList.length }}椤�</span + > + <!-- <span + @click="handleCheckAllChange" style=" color: rgba(28, 31, 35, 0.8); font-size: 0.75rem; margin-left: 0.38rem; + cursor: pointer; " >鍏ㄩ��</span + > --> + </div> + </div> + <el-scrollbar height="20rem" style="padding-left: 0.88rem"> + <el-checkbox-group + :indeterminate="isIndeterminate" + @change="checkChange" + v-model="checkboxId" + style="display: flex; flex-direction: column" + > + <el-checkbox + :max="2" + v-for="item in sleeveData" + :key="item.id" + :label="item.articleName" + :value="item.id" + /> + </el-checkbox-group> + </el-scrollbar> + </div> + <div style="width: 50%; height: 100%"> + <div + style="padding: 0.88rem 0 0 0.88rem; box-sizing: border-box" + > + <span style="color: rgb(167, 171, 176); font-size: 0.88rem" + >宸查�墈{ checkList.length }}椤�</span + > + <span + @click="clear" + style=" + color: rgb(65, 70, 76); + font-size: 0.88rem; + margin-left: 1rem; + cursor: pointer; + " + >娓呯┖</span > </div> + <el-scrollbar + height="calc(25rem - 44.15px)" + style="padding-left: 0.88rem" + > + <p + style=" + display: flex; + justify-content: space-between; + margin: 0.5rem 0; + " + v-for="item in checkList" + :key="item ? item.id : ''" + class="scrollbar-demo-item" + > + <span> + {{ item ? item.articleName : "" }} + </span> + <span> + <el-input-number + size="small" + style="width: 7rem" + v-model="item.num" + :min="1" + :max="100" + @change="handleChange" + /> + </span> + </p> + </el-scrollbar> </div> - <el-scrollbar height="20rem" style="padding-left: 0.88rem"> - <el-checkbox-group - v-model="checkList" - style="display: flex; flex-direction: column" - > - <el-checkbox - v-for="item in sleeveData" - :key="item.id" - :label="item.articleName" - :value="item" - /> - </el-checkbox-group> - </el-scrollbar> </div> - <div style="width: 50%; height: 100%"> - <div - style="padding: 0.88rem 0 0 0.88rem; box-sizing: border-box" - > - <span style="color: rgb(167, 171, 176); font-size: 0.88rem" - >宸查�墈{ checkList.length }}椤�</span - > - <span - style=" - color: rgb(65, 70, 76); - font-size: 0.88rem; - margin-left: 1rem; - " - >娓呯┖</span - > - </div> - <el-scrollbar - height="calc(25rem - 44.15px)" - style="padding-left: 0.88rem" - > - <p - style=" - display: flex; - justify-content: space-between; - margin: 0.5rem 0; - " - v-for="(item, index) in checkList" - :key="item" - class="scrollbar-demo-item" - > - <span> - {{ item.articleName }} - </span> - <span> - <el-input-number - size="small" - style="width: 7rem" - v-model="item.num" - :min="1" - :max="100" - @change="handleChange" - /> - </span> - </p> - </el-scrollbar> - </div> - </div> - </el-form-item> - </el-row> - </el-form> + </el-form-item> + </el-row> + </el-form> + </el-scrollbar> + <template #footer> <div class="dialog-footer" style="text-align: center"> <el-button @click="craftdialogVisible = false" style="height: 2rem" @@ -669,8 +790,8 @@ </div> </template> <script setup> -import { ref, reactive, onMounted } from "vue"; -import { formatTime } from "@/utils/index.js"; +import { ref, reactive, onMounted, toRef, computed } from "vue"; +import { Search } from "@element-plus/icons-vue"; import { GetSleeveandStep, GetProcess, @@ -679,73 +800,107 @@ ArticleInfom, GetTool, ExportApi, + DelProcess, + AddOrUpdateProcess, } from "@/api/newapi/Process"; import { ElMessage } from "element-plus"; -import { exportExcel } from "@/utils/index.js"; -//宸ヨ壓鏄庣粏寮瑰嚭妗� -const detailsDialogVisible = ref(false); -//宸ヨ壓鏄庣粏鏁版嵁 -const gridData = ref([]); -//鐢垫皵鏁伴噺 -const electric = ref(null); -//鏈烘鏁伴噺 -const mechanical = ref(null); -//鍦版矡 -const trench = ref(null); -//鎼滅储 -const queryForm = reactive({ +import { formatTime } from "@/utils/index.js"; + +// 鍒濆鍖栨暟鎹� +const obj = { selectName: "", selectTime: [], // 鏃堕棿鑼冨洿 - selectType: "", - selectInput: "", -}); + selectType: "", //閫夋嫨鐨勭被鍨� + selectInput: "", //杈撳叆鐨勬暟鎹� +}; +//宸ヨ壓鏄庣粏鏁版嵁 +const gridData = ref([]); +//濂楃瓛鏁版嵁 +const sleeveData = ref([]); +//閫夋嫨鐨勫绛掓暟鎹� +const checkList = ref([]); +//鐢垫皵鏁伴噺 +const electric = ref([]); +//鏈烘鏁伴噺 +const mechanical = ref([]); +//鍦版矡 +const trench = ref([]); +//鏂板宸ヨ壓/缂栬緫宸ヨ壓 +const type = ref("鏂板"); +//鑾峰彇鏁版嵁 +const title = ref("鐢垫皵"); +//琛ㄥ崟ref鍊� +const ruleFormRef = ref(); +//鐢ㄦ埛鏁版嵁 +const user = ref(null); + +const tools = ref([]); +//鎼滅储 +const queryForm = toRef({ ...obj }); +const isIndeterminate = ref(true); +//宸ヨ壓鏄庣粏寮瑰嚭妗� +const detailsDialogVisible = ref(false); +//鏂板宸ヨ壓寮瑰嚭妗� +const craftdialogVisible = ref(false); +//鎼滅储瀛楁閫夋嫨 const selectoptions = ref([ { value: "setpNum", - label: "搴忓彿", + label: "鎺掑簭", }, { value: "tools", label: "宸ュ叿", }, ]); -//閫夋嫨鐨勫绛掓暟鎹� -const checkList = ref([]); -//鑾峰彇鏁版嵁 -const title = ref("鐢垫皵"); -const showdetails = (val) => { - detailsDialogVisible.value = true; - title.value = val; - initData(title.value); - // GetProcess(val).then((res) => { - // gridData.value = res.data; - // }); -}; -//鏂板宸ヨ壓/缂栬緫宸ヨ壓 -const craftdialogVisible = ref(false); -const type = ref("鏂板"); +//鏄惁娑夊強 +const isoptions = reactive([ + { label: "鏄�", value: "鏄�" }, + { label: "鍚�", value: "鍚�" }, +]); + +//琛ㄥ崟瑙勫垯 +const rules = reactive({ + craftstype: [ + { required: true, message: "璇烽�夋嫨宸ヨ壓绫诲瀷", trigger: "change" }, + ], + craftsStep: [{ required: true, message: "璇疯緭鍏ュ伐鑹烘楠�", trigger: "blur" }], + craftContent: [ + { required: true, message: "璇疯緭鍏ュ伐鑹哄唴瀹�", trigger: "blur" }, + ], + nodal: [{ required: true, message: "璇疯緭鍏ュ簭鍙�", trigger: "blur" }], + setpNum: [{ required: true, message: "璇疯緭鍏ユ帓搴忓彿", trigger: "blur" }], +}); + +// isinvolved: "", //鏄惁娑夊強 +//鏂板宸ヨ壓/缂栬緫宸ヨ壓琛ㄥ崟鏁版嵁 const form = ref({ - craftType: "", //宸ヨ壓绫诲瀷锛堢粍锛� - nodal: "", //鑺傜偣 + id: 0, + craftstype: "", //宸ヨ壓绫诲瀷锛堢粍锛� + nodal: null, //鑺傜偣 craftsStep: "", //宸ヨ壓姝ラ craftContent: "", //宸ヨ壓鍐呭 sleeveNum: "", //濂楃瓛鏁伴噺 tools: "", //宸ュ叿 - isinvolved: "", //鏄惁娑夊強 - sort: "", //鎺掑簭 - craftID: 1, - setpNum: "", - torqueOne: null, + setpNum: null, + torqueOne: 0, torqueOneQuantity: 0, + articleone: "", + aritcleoneid: "", + aritcletowid: "", + articletwo: "", torqueSum: 0, - torqueTwo: null, + torqueTwo: 0, torqueTwoQuantity: 0, - articleOne: "", - articleTwo: "", + material: "", + creater: localStorage.getItem("user") + ? JSON.parse(localStorage.getItem("user")).userName + : "", + createDate: formatTime(new Date()), }); + const props = { multiple: true }; -//濂楃瓛鏁版嵁 -const sleeveData = ref([]); +const userName = ref(""); //鏂板宸ヨ壓 const addcraft = (row) => { @@ -793,45 +948,139 @@ GJoptions.value = res.rows; }); }; + //缂栬緫宸ヨ壓 const Editcraft = (row) => { + let data = Object.assign({}, row); type.value = "缂栬緫"; detailsDialogVisible.value = false; craftdialogVisible.value = true; - form.value = row; - console.log(row, form); -}; -//瑙勫垯 -const ruleFormRef = ref(); -const rules = reactive({ - craftType: [{ required: true, message: "璇烽�夋嫨宸ヨ壓绫诲瀷", trigger: "change" }], - nodal: [{ required: true, message: "璇烽�夋嫨鑺傜偣", trigger: "change" }], - craftsStep: [{ required: true, message: "璇疯緭鍏ュ伐鑹烘楠�", trigger: "blur" }], - craftContent: [ - { required: true, message: "璇疯緭鍏ュ伐鑹哄唴瀹�", trigger: "blur" }, - ], - sleeveNum: [{ required: true, message: "璇疯緭鍏ュ绛掓暟閲�", trigger: "blur" }], -}); + form.value = data; + tools.value = data.tools ? data.tools.split(",") : ""; + console.log("tools", tools.value); -//淇濆瓨 -const addprocess = async (formEl) => { - let string = ""; - form.value.tools.forEach((item) => { - string += item.toolName + ","; + checkboxId.value = [Number(row.articleOneid), Number(row.articleTowid)]; + ArticleInfom({ + page: 1, + rows: 100, + total: 0, + tableName: "", + sort: "", + order: "", + wheres: "", + export: true, + value: "", + filter: [ + { + name: "", + value: "", + displayType: "", + }, + ], + }).then((res) => { + sleeveData.value = res.rows; + checkList.value = res.rows.map((item) => { + if (Number(row.articleOneid) == item.id) { + return { + ...item, + num: row.articleOne, + }; + } else if (item.id == row.articleTowid) { + return { + ...item, + num: row.articleTwo, + }; + } else { + return {}; + } + }); + checkList.value = checkList.value.filter((item) => { + return Object.keys(item).length > 0; + }); }); - form.value.articleOne = checkList.value[0].num; - form.value.articleTwo = checkList.value[1].num; - form.value.tools = string; - form.value.craftType = title.value; - console.log(form.value); + GetTool({ + page: 1, + rows: 100, + total: 0, + tableName: "", + sort: "", + order: "", + wheres: "", + export: true, + value: "", + filter: [ + { + name: "", + value: "", + displayType: "", + }, + ], + }).then((res) => { + GJoptions.value = res.rows; + }); +}; +const showdetails = (val) => { + detailsDialogVisible.value = true; + title.value = val; + initData(title.value); + // GetProcess(val).then((res) => { + // gridData.value = res.data; + // }); +}; +//淇濆瓨 +const addprocess = async (formEl) => { + console.log(checkboxId.value); + userName.value = JSON.parse(localStorage.getItem("user")).userName; + let string = ""; + if (tools.value.length > 0) { + string = tools.value + .map((item) => { + return typeof item == "string" ? item : item.toolName; + }) + .join(","); + } + if (form.value.nodal == 0) { + ElMessage({ + message: "搴忓彿鏈�灏忎负1", + type: "warning", + }); + return; + } + console.log(checkList.value); + + form.value.aritcleoneid = + checkList.value.length != 0 ? checkList.value[0].id : ""; + form.value.articleone = + checkList.value.length != 0 ? checkList.value[0].num : ""; + form.value.aritcletowid = + checkList.value.length != 0 && checkList.value.length > 1 + ? checkList.value[1].id + : ""; + form.value.articletwo = + checkList.value.length != 0 && checkList.value.length > 1 + ? checkList.value[1].num + : ""; + form.value.creater = userName.value; + form.value.tools = string; + form.value.craftstype = title.value; + form.value.id = form.value.craftID ? form.value.craftID : 0; + form.value.torqueSum = computed(() => { + if (form.value.torqueOne > 1 && form.value.torqueTwo > 1) { + return 2; + } else if (form.value.torqueOne > 1 || form.value.torqueTwo > 1) { + return 1; + } else { + return 0; + } + }); if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { - AddProcess(form.value).then((res) => { + AddOrUpdateProcess(form.value).then((res) => { ElMessage({ - message: res.message, + message: form.value.craftID ? "淇敼鎴愬姛" : "鍒涘缓鎴愬姛", type: "success", }); craftdialogVisible.value = false; @@ -875,39 +1124,34 @@ GJoptions.value = []; } }; -//鏄惁娑夊強 -const isoptions = reactive([ - { label: "鏄�", value: "鏄�" }, - { label: "鍚�", value: "鍚�" }, -]); -const user = ref(null); + //鍒嗛〉璇锋眰鍙傛暟 const pageQuery = ref({ page: 1, //褰撳墠椤甸潰 - rows: 10, //姣忛〉鏄剧ず鏉℃暟 + rows: 100, //姣忛〉鏄剧ず鏉℃暟 order: "desc", //鎺掑簭鏂瑰紡 - sort: "craftID", //鎺掑簭瀛楁 + sort: "", //鎺掑簭瀛楁 wheres: "", //鏉′欢鏌ヨ }); - +//椤甸潰鍒濆鍖栨暟鎹� const initData = (val) => { // 鏌ヨ鏉′欢 - const startTime = formatTime(queryForm.selectTime[0]); - const endTime = formatTime(queryForm.selectTime[1]); + const startTime = formatTime(queryForm.value.selectTime[0]); + const endTime = formatTime(queryForm.value.selectTime[1]); const filter = [ { - name: "gruop", + name: "CraftType", value: val, - displayType: "Contains", + displayType: "String", }, { - name: queryForm.selectType, - value: queryForm.selectInput, - displayType: "Equal", + name: queryForm.value.selectType, + value: queryForm.value.selectInput, + displayType: "like", }, { name: "pustatus", - value: queryForm.selectName, + value: queryForm.value.selectName, displayType: "Contains", }, { name: "createTime", value: startTime, displayType: "ThanOrEqual" }, @@ -920,10 +1164,54 @@ gridData.value = res.rows; }); }; +//鏁版嵁妫�绱簨浠� +const handleQuery = () => { + pageQuery.value.page = 1; + initData(title.value); +}; +// 閲嶇疆鏂规硶 +const resetQuery = () => { + queryForm.value = Object.assign({}, obj); + pageQuery.value.page = 1; + initData(title.value); +}; +//閲嶇疆琛ㄥ崟 +const resetForm = (formEl) => { + if (!formEl) return; + formEl.resetFields(); + form.value = Object.assign( + {}, + { + craftstype: "", //宸ヨ壓绫诲瀷锛堢粍锛� + nodal: "", //鑺傜偣 + craftsStep: "", //宸ヨ壓姝ラ + craftContent: "", //宸ヨ壓鍐呭 + sleeveNum: "", //濂楃瓛鏁伴噺 + tools: "", //宸ュ叿 + isinvolved: "", //鏄惁娑夊強 + setpNum: "", + torqueOne: 0, + torqueOneQuantity: 0, + articleone: "", + articleoneid: "", + articletowid: "", + articletwo: "", + torqueSum: 0, + torqueTwo: 0, + torqueTwoQuantity: 0, + creater: "", + createDate: formatTime(new Date()), + } + ); + tools.value = []; + checkList.value = []; + checkboxId.value = []; +}; +//瀵煎嚭鏂规硶 const printExcel = () => { // 鏌ヨ鏉′欢 - const startTime = formatTime(queryForm.selectTime[0]); - const endTime = formatTime(queryForm.selectTime[1]); + const startTime = formatTime(queryForm.value.selectTime[0]); + const endTime = formatTime(queryForm.value.selectTime[1]); const filter = [ { name: "gruop", @@ -931,13 +1219,13 @@ displayType: "String", }, { - name: queryForm.selectType, - value: queryForm.selectInput, + name: queryForm.value.selectType, + value: queryForm.value.selectInput, displayType: "String", }, { name: "pustatus", - value: queryForm.selectName, + value: queryForm.value.selectName, displayType: "String", }, { name: "createTime", value: startTime, displayType: "ThanOrEqual" }, @@ -948,34 +1236,54 @@ filter, }); }; - -//鏁版嵁妫�绱簨浠� -const handleQuery = () => { - pageQuery.value.page = 1; - initData(title.value); +//娓呯┖ +const clear = () => { + checkList.value = []; }; -const resetQuery = () => { - queryForm.value = { selectTime: [] }; - pageQuery.value.page = 1; - initData(title.value); +const checkboxId = ref([]); //澶嶉�夋閫変腑浜嬩欢 +const checkChange = (e) => { + checkList.value = []; + sleeveData.value.forEach((item, index) => { + if (checkboxId.value.includes(item.id)) { + checkList.value.push({ + ...item, + num: 1, + }); + } + }); }; - -// const handleChange = () => { -// console.log(checkList.value); -// }; -const handleClose = () => { +const handleChange = () => { console.log(checkList.value); +}; +const handleCheckAllChange = (val) => { + checkList.value = val ? sleeveData.value : []; + isIndeterminate.value = false; +}; +// 鍒犻櫎宸ヨ壓 +const delProcess = (val) => { + console.log(val); + + DelProcess([val.craftID]).then((res) => { + ElMessage({ + message: "鍒犻櫎鎴愬姛", + type: "success", + }); + initData(title.value); + }); }; onMounted(() => { - GetSleeveandStep("鐢垫皵").then((res) => { - electric.value = res.data[0]; - }); - GetSleeveandStep("鏈烘").then((res) => { - mechanical.value = res.data[0]; - }); - GetSleeveandStep("鍦版矡").then((res) => { - trench.value = res.data[0]; + GetSleeveandStep().then((res) => { + electric.value = res.data.filter((item) => { + return item.craftType == "鐢垫皵"; + }); + mechanical.value = res.data.filter((item) => { + return item.craftType == "鏈烘"; + }); + trench.value = res.data.filter((item) => { + return item.craftType == "鍦版矡"; + }); + console.log(electric.value); }); user.value = JSON.parse(localStorage.getItem("user")).userName; }); @@ -985,12 +1293,14 @@ display: flex; justify-content: center; background-color: rgba(0, 0, 0, 0.3); + .content { display: flex; justify-content: space-between; margin-top: 5.88rem; width: 75rem; + .content-list { display: flex; flex-direction: column; @@ -998,14 +1308,17 @@ width: 22.69rem; height: 11.44rem; background-color: #fff; + .list_top { display: flex; padding: 1.38rem 1.38rem; box-sizing: border-box; + .list_top_left { margin-right: 0.94rem; } } + .list_bottom { height: 3.06rem; display: flex; @@ -1017,6 +1330,7 @@ } } } + .my-header { height: 3.94rem; display: flex; @@ -1026,9 +1340,11 @@ padding-left: 2.06rem; border-bottom: 0.06rem solid rgba(233, 233, 233, 1); } + .serch { display: flex; align-items: center; + .time_box { display: flex; align-items: center; @@ -1047,12 +1363,14 @@ 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; @@ -1064,6 +1382,7 @@ align-items: center; justify-content: center; } + input { box-sizing: border-box; outline: none; @@ -1076,6 +1395,7 @@ } } } + .my-craftheader { height: 3.94rem; display: flex; @@ -1085,11 +1405,13 @@ border-bottom: 0.06rem solid rgba(233, 233, 233, 1); } } + .avatar-uploader .avatar { width: 7rem; height: 7rem; display: block; } + :deep(.avatar-uploader .el-upload) { width: 7rem; height: 7rem; @@ -1100,10 +1422,12 @@ overflow: hidden; transition: var(--el-transition-duration-fast); } + :deep(.el-upload-list__item) { width: 7rem; height: 7rem; } + .avatar-uploader .el-upload:hover { border-color: var(--el-color-primary); } -- Gitblit v1.9.3