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