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