Переглянути джерело

张丁 修改预约票、作业票样式、数据显示等bug

zhangding 3 роки тому
батько
коміт
b95ba74d3c

+ 1 - 0
master/src/main/java/com/ruoyi/project/ehs/controller/TJobticketController.java

@@ -170,6 +170,7 @@ public class TJobticketController extends BaseController
             tJobticket.setGczyjb(tInvoiceWorkcontent.getGczyjb());
             tJobticket.setDhzyxkzh(tInvoiceWorkcontent.getDhzyxkzh());
             tJobticketService.insertTJobticket(tJobticket);
+            contentUserUnit.delete(0, contentUserUnit.length());
         }
         return AjaxResult.success();
     }

+ 1 - 1
master/src/main/java/com/ruoyi/project/invoice/controller/TInvoiceBookingworkticketController.java

@@ -679,7 +679,7 @@ public class TInvoiceBookingworkticketController extends BaseController
             }
             content.delete(0, content.length());
             contentUserWorkType.delete(0, contentUserWorkType.length());
-            contentTicket.delete(0, contentUserWorkType.length());
+            contentTicket.delete(0, contentTicket.length());
         }
         // 渲染文本
         return params;

+ 13 - 0
master/src/main/java/com/ruoyi/project/invoice/controller/TInvoiceContractorController.java

@@ -40,6 +40,19 @@ public class TInvoiceContractorController extends BaseController
         return getDataTable(list);
     }
 
+
+    /**
+     *  查询承包商列表
+     */
+    @GetMapping("/select")
+    public AjaxResult select()
+    {
+
+        List<String> list = tInvoiceContractorService.selectTInvoiceContractorAllList();
+
+        return AjaxResult.success(list);
+    }
+
     /**
      * 导出承包商信息列表
      */

+ 7 - 0
master/src/main/java/com/ruoyi/project/invoice/mapper/TInvoiceContractorMapper.java

@@ -62,5 +62,12 @@ public interface TInvoiceContractorMapper
      */
     public int deleteTInvoiceContractorByIds(Long[] ids);
 
+    //根据名字查承包商信息  暂未用
     public TInvoiceContractor selectTInvoiceContractorByName(String username);
+
+
+    /**
+     *  查询承包商列表
+     */
+    List<String> selectTInvoiceContractorAllList();
 }

+ 7 - 0
master/src/main/java/com/ruoyi/project/invoice/service/ITInvoiceContractorService.java

@@ -67,4 +67,11 @@ public interface ITInvoiceContractorService
      * @return 结果
      */
      public  TInvoiceContractor selectTInvoiceContractorByName(String userId);
+
+
+
+    /**
+     *  查询承包商列表
+     */
+    List<String> selectTInvoiceContractorAllList();
 }

+ 9 - 0
master/src/main/java/com/ruoyi/project/invoice/service/impl/TInvoiceContractorServiceImpl.java

@@ -103,4 +103,13 @@ public class TInvoiceContractorServiceImpl implements ITInvoiceContractorService
     public TInvoiceContractor selectTInvoiceContractorByName(String username) {
       return  tInvoiceContractorMapper.selectTInvoiceContractorByName(username);
     }
+
+
+    /**
+     *  查询承包商列表
+     */
+    @Override
+    public List<String> selectTInvoiceContractorAllList() {
+        return tInvoiceContractorMapper.selectTInvoiceContractorAllList();
+    }
 }

+ 5 - 0
master/src/main/resources/mybatis/invoice/TInvoiceContractorMapper.xml

@@ -49,6 +49,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ${params.dataScope}
     </select>
 
+    <select id="selectTInvoiceContractorAllList"  resultType="java.lang.String">
+        select d.contractor_name  from t_invoice_contractor d                                                                                                                                                   left join sys_dept s on s.dept_id = d.dept_id
+        where d.del_flag = 0
+    </select>
+
     <select id="selectTInvoiceContractorById" parameterType="Long" resultMap="TInvoiceContractorResult">
         <include refid="selectTInvoiceContractorVo"/>
         where id = #{id}

+ 10 - 0
ui/src/api/ehs/jobticket.js

@@ -69,3 +69,13 @@ export function batchAddJobticket(data) {
     data: data
   })
 }
+
+// 查询承包商列表
+export function selectChengbaoshang(query) {
+  return request({
+    url: '/invoice/contractor/select',
+    method: 'get',
+    params: query
+  })
+}
+

+ 10 - 1
ui/src/api/invoice/bookingworkticket.js

@@ -76,4 +76,13 @@ export function assion(id) {
     url: '/invoice/bookingworkticket/assion'+id,
     method: 'get',
   })
-}
+}
+
+// 查询承包商列表
+export function selectChengbaoshang(query) {
+  return request({
+    url: '/invoice/contractor/select',
+    method: 'get',
+    params: query
+  })
+}

+ 291 - 23
ui/src/views/ehs/jobticket/index.vue

@@ -94,15 +94,6 @@
           v-hasPermi="['ehs:jobticket:remove']"
         >{{ $t('删除') }}</el-button>
       </el-col>
-        <el-col :span="1.5">
-            <el-button
-                    type="info"
-                    icon="el-icon-upload2"
-                    size="mini"
-                    @click="handleImport"
-                    v-hasPermi="['ehs:jobticket:edit']"
-            >{{ $t('导入') }}</el-button>
-        </el-col>
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -152,10 +143,42 @@
           <span>{{ parseTime(scope.row.xpsj, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column :label="$t('作业票状态')" align="center" prop="zypzt" width="200" :formatter="zypztFormat" />
+      <el-table-column :label="$t('作业票状态')" align="center" prop="zypzt" width="200" :formatter="zypztFormat" > 
+        <template slot-scope="scope" v-if="scope.row.zypzt != null">
+          <el-dropdown placement="bottom" trigger="click">
+            <span class="el-dropdown-link">
+              <span style=" font-size: 13px" v-if="scope.row.zypzt==10">{{"作业票未销"}}</span>
+               <span style=" font-size: 13px" v-if="scope.row.zypzt==18">{{"作业票收回,作业票关闭"}}</span>
+                <span style="font-size: 13px" v-if="scope.row.zypzt==16">{{"作业票延期"}}</span>
+                 <span style="font-size: 13px" v-if="scope.row.zypzt==20">{{"作业票作废"}}</span>
+              <i class="el-icon-caret-bottom"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item @click.native="statusWX(0, scope.row)">{{ $t('作业票未销') }}</el-dropdown-item>
+              <el-dropdown-item @click.native="statusGBSH(0, scope.row)">{{ $t('作业票关闭,作业票收回') }}</el-dropdown-item>
+              <el-dropdown-item @click.native="statusYQ(0, scope.row)">{{ $t('作业票延期') }}</el-dropdown-item>
+              <el-dropdown-item @click.native="statusZF(0, scope.row)">{{ $t('作业票作废') }}</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </template>
+      </el-table-column>
       <el-table-column :label="$t('检查/存档人')" align="center" prop="jccdr" :show-overflow-tooltip="true"/>
       <el-table-column :label="$t('未撤销项编号')" align="center" prop="wcxxbh" :show-overflow-tooltip="true"/>
-      <el-table-column :label="$t('未撤销状态')" align="center" prop="wcxzt" :show-overflow-tooltip="true"/>
+      <el-table-column :label="$t('未撤销状态')" align="center" prop="wcxzt" :formatter="wcxztFormat">
+        <template slot-scope="scope" v-if="scope.row.wcxzt != null">
+          <el-dropdown placement="bottom" trigger="click">
+            <span class="el-dropdown-link">
+              <span style=" font-size: 13px" v-if="scope.row.wcxzt==10">{{"有"}}</span>
+               <span style=" font-size: 13px" v-if="scope.row.wcxzt==12">{{"无"}}</span>     
+              <i class="el-icon-caret-bottom"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item @click.native="wcxztYOU(0, scope.row)">{{ $t('有') }}</el-dropdown-item>
+              <el-dropdown-item @click.native="wcxztWU(0, scope.row)">{{ $t('无') }}</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </template>
+      </el-table-column>
       <el-table-column :label="$t('撤销时间')" align="center" prop="cxsj" width="100">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.cxsj, '{y}-{m}-{d}') }}</span>
@@ -225,7 +248,7 @@
         <el-form-item :label="$t('签发人')" prop="qfr">
           <el-input v-model="form.qfr" :placeholder="$t('请输入') + $t('签发人')" />
         </el-form-item>
-        <el-form-item :label="$t('新票/续票')" prop="xpxp">
+        <el-form-item :label="$t('新票/续票')" prop="xpxp" v-if="isxp">
           <el-select v-model="form.xpxp" :placeholder="$t('请选择') + $t('新票/续票')">
             <el-option
               v-for="dict in xpxpOptions"
@@ -264,7 +287,14 @@
           <el-input v-model="form.byclxr" :placeholder="$t('请输入') + $t('BYC负责单位/联系人')" />
         </el-form-item>
         <el-form-item :label="$t('施工单位')" prop="sgdw">
-          <el-input v-model="form.sgdw" :placeholder="$t('请输入') + $t('施工单位')" />
+          <el-select v-model="form.sgdw" placeholder="请选择施工单位" @change="checkCategoryPromotion(form.sgdw)">
+             <el-option
+            v-for="dict in sgdwOptions"
+            :key="dict.id"
+            :label="dict.label"
+            :value="dict.id"
+                 ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item :label="$t('联系人')" prop="lxr">
           <el-input v-model="form.lxr" :placeholder="$t('请输入') + $t('联系人')" />
@@ -297,7 +327,14 @@
           <el-input v-model="form.wcxxbh" :placeholder="$t('请输入') + $t('未撤销项编号')" />
         </el-form-item>
         <el-form-item :label="$t('未撤销状态')" prop="wcxzt">
-          <el-input v-model="form.wcxzt" :placeholder="$t('请输入') + $t('未撤销状态')" />
+         <el-select v-model="form.wcxzt" :placeholder="$t('请选择') + $t('未撤销状态')">
+            <el-option
+              v-for="dict in wcxztOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item :label="$t('撤销时间')" prop="cxsj">
           <el-date-picker clearable size="small" style="width: 200px"
@@ -371,9 +408,134 @@
       </el-row>
     </el-drawer>
      <el-dialog title="延期作业许可" :visible.sync="guanlianVisible" width="30%"  center>
-  <div class="demo-input-size">
-    <el-input   prop="yqzyxkzh"  size="medium" prefix-icon="el-icon-edit" placeholder="请输入延期作业许可证号" v-model="yqzyxkzh"></el-input>
-    </div>
+   <el-form ref="form" :model="postponeform" :rules="rules" label-width="80px">
+        <el-form-item :label="$t('开票日期')" prop="kprq">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="postponeform.kprq"
+            type="date"
+            value-format="yyyy-MM-dd"
+            :placeholder="$t('请选择') + $t('开票日期')">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item :label="$t('签发时间')" prop="qfsj">
+          <el-input v-model="postponeform.qfsj" :placeholder="$t('请输入') + $t('签发时间')" />
+        </el-form-item>
+        <el-form-item :label="$t('签发班组')" prop="qfbz">
+          <el-select v-model="postponeform.qfbz" :placeholder="$t('请选择') + $t('签发班组')">
+            <el-option
+              v-for="dict in qfbzOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('签发人')" prop="qfr">
+          <el-input v-model="postponeform.qfr" :placeholder="$t('请输入') + $t('签发人')" />
+        </el-form-item>
+        <el-form-item :label="$t('新票/续票')" prop="xpxp" v-if="isxp">
+          <el-select v-model="postponeform.xpxp" :placeholder="$t('请选择') + $t('新票/续票')">
+            <el-option
+              v-for="dict in xpxpOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('延期许可证号')" prop="yqxkzh">
+          <el-input v-model="postponeform.yqxkzh" :placeholder="$t('请输入') + $t('延期许可证号')" />
+        </el-form-item>
+        <el-form-item :label="$t('危害工作许可证号')" prop="whgzxkzh">
+          <el-input v-model="postponeform.whgzxkzh" :placeholder="$t('请输入') + $t('危害工作许可证号')" />
+        </el-form-item>
+        <el-form-item :label="$t('动火作业许可证号')" prop="dhzyxkzh">
+          <el-input v-model="postponeform.dhzyxkzh" :placeholder="$t('请输入') + $t('动火作业许可证号')" />
+        </el-form-item>
+        <el-form-item :label="$t('火票级别')" prop="hpjb">
+          <el-select v-model="postponeform.hpjb" :placeholder="$t('请选择') + $t('火票级别')">
+            <el-option
+              v-for="dict in hpjbOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('限制空间许可证号')" prop="xzkjxkzh">
+          <el-input v-model="postponeform.xzkjxkzh" :placeholder="$t('请输入') + $t('限制空间许可证号')" />
+        </el-form-item>
+        <el-form-item :label="$t('内容')" prop="content">
+          <el-input v-model="postponeform.content" :placeholder="$t('请输入') + $t('内容')" />
+        </el-form-item>
+        <el-form-item :label="$t('BYC负责单位/联系人')" prop="byclxr">
+          <el-input v-model="postponeform.byclxr" :placeholder="$t('请输入') + $t('BYC负责单位/联系人')" />
+        </el-form-item>
+        <el-form-item :label="$t('施工单位')" prop="sgdw">
+          <el-select v-model="postponeform.sgdw" placeholder="请选择施工单位" @change="checkCategoryPromotion(form.sgdw)">
+             <el-option
+            v-for="dict in sgdwOptions"
+            :key="dict.id"
+            :label="dict.label"
+            :value="dict.id"
+                 ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('联系人')" prop="lxr">
+          <el-input v-model="postponeform.lxr" :placeholder="$t('请输入') + $t('联系人')" />
+        </el-form-item>
+        <el-form-item :label="$t('联系电话')" prop="lxdh">
+          <el-input v-model="postponeform.lxdh" :placeholder="$t('请输入') + $t('联系电话')" />
+        </el-form-item>
+        <el-form-item :label="$t('销票时间')" prop="xpsj">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="postponeform.xpsj"
+            type="date"
+            value-format="yyyy-MM-dd"
+            :placeholder="$t('请选择') + $t('销票时间')">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item :label="$t('作业票状态')" prop="zypzt">
+          <el-select v-model="postponeform.zypzt" :placeholder="$t('请选择') + $t('作业票状态')">
+            <el-option
+              v-for="dict in zypztOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('检查/存档人')" prop="jccdr">
+          <el-input v-model="postponeform.jccdr" :placeholder="$t('请输入') + $t('检查/存档人')" />
+        </el-form-item>
+        <el-form-item :label="$t('未撤销项编号')" prop="wcxxbh">
+          <el-input v-model="postponeform.wcxxbh" :placeholder="$t('请输入') + $t('未撤销项编号')" />
+        </el-form-item>
+        <el-form-item :label="$t('未撤销状态')" prop="wcxzt">
+         <el-select v-model="postponeform.wcxzt" :placeholder="$t('请选择') + $t('未撤销状态')">
+            <el-option
+              v-for="dict in wcxztOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item :label="$t('撤销时间')" prop="cxsj">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="postponeform.cxsj"
+            type="date"
+            value-format="yyyy-MM-dd"
+            :placeholder="$t('请选择') + $t('撤销时间')">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item :label="$t('备注')" prop="remarks">
+          <el-input v-model="postponeform.remarks" :placeholder="$t('请输入') + $t('备注')" />
+        </el-form-item>
+          <el-form-item :label="$t('归属部门')" prop="deptId">
+              <treeselect v-model="postponeform.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
+          </el-form-item>
+      </el-form>
      <div slot="footer" class="dialog-footer">
               <el-button @click="guanlianVisible=false">取 消</el-button>
     <el-button type="primary" @click="submitPostpone()">确 定</el-button>
@@ -383,8 +545,8 @@
 </template>
 
 <script>
-import { listJobticket, getJobticket, delJobticket, addJobticket, updateJobticket, exportJobticket } from "@/api/ehs/jobticket";
-import { treeselect } from "@/api/system/dept";
+import { listJobticket, getJobticket, delJobticket, addJobticket, updateJobticket, exportJobticket ,selectChengbaoshang} from "@/api/ehs/jobticket";
+import { treeselect,getDept } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -395,6 +557,8 @@ export default {
   components: {FireData, Treeselect },
   data() {
     return {
+      //新票新增
+      isxp:false,
       //延期对话框
       guanlianVisible:false,
       yqzyxkzh:"",
@@ -433,6 +597,10 @@ export default {
       zypztOptions: [],
       // 高处作业级别字典
       gczyjbOptions: [],
+      //作业票未撤销状态字典
+      wcxztOptions:[],
+      //施工单位字典
+      sgdwOptions:[],
       // 用户导入参数
       upload: {
         //下载模板请求地址
@@ -515,6 +683,8 @@ export default {
       form: {},
       //延期参数
       postponeParams:{},
+      //延期表单
+      postponeform:{},
       // 表单校验
       rules: {
         plantCode: [
@@ -526,6 +696,10 @@ export default {
         yqzyxkzh: [
           { required: true, message: this.$t('当前作业票已经延期五次,请重新生成新的续票'), trigger: "blur" }
         ],
+        xpxp: [
+          { required: true, message: this.$t('手动新增只能为新票'), trigger: "blur" },
+           {validator: this.xpxp, trigger: 'blur'}
+        ],
       }
     };
   },
@@ -542,6 +716,7 @@ export default {
     })
     this.getList();
     this.getTreeselect();
+    this.getChengbaoshang();
     this.getDicts("PLANT_DIVIDE").then(response => {
       this.plantCodeOptions = response.data;
     });
@@ -561,14 +736,31 @@ export default {
     this.getDicts("GCZYJB").then(response => {
       this.gczyjbOptions = response.data;
     });
+    this.getDicts("TICKED_WCXZT").then(response => {
+      this.wcxztOptions = response.data;
+    });
   },
   methods: {
+      checkCategoryPromotion(oneId){
+
+      getDept(oneId).then(response => {
+ 
+        this.form.lxr = response.data.leader;
+      this.form.lxdh=response.data.phone
+      });
+        },
+    //查找承包商列表
+    getChengbaoshang(){
+       treeselect().then(response => {
+              this.sgdwOptions = response.data[1].children;
+          });
+    },
     //延期 即新增一条 改为续票
     handlePostpone(row){
       this.guanlianVisible=true
        const id = row.id || this.ids
        getJobticket(id).then(response => {
-        this.yqzyxkzh = response.data.yqxkzh;
+        this.postponeform = response.data;
       });
        this.postponeParams=row
     
@@ -621,13 +813,13 @@ export default {
         return "background-color:rgba(255,63,0, 0.6);"
       }
       if ( row.zypzt == 18||row.zypzt==14){
-        return "background-color:rgba(21,180,51, 0.6);"
+        return "background-color:rgba(221,248,9, 0.6);"
       }
       if (row.zypzt == 16){
-        return "background-color:rgba(221,248,9, 0.6);"
+        return "background-color:rgba(21,180,51, 0.6);"
       }
       if (row.zypzt == 20){
-        return "background-color:rgba(255, 68,68, 0.6);"
+        return "background-color:rgba(163, 150,150, 0.6);"
       }
     },
     /** 查询工作票列表 */
@@ -669,11 +861,84 @@ export default {
     gczyjbFormat(row, column) {
       return this.selectDictLabel(this.gczyjbOptions, row.gczyjb);
     },
+    wcxztFormat(row, column) {
+      return this.selectDictLabel(this.wcxztOptions, row.wcxzt);
+    },
+    
     // 取消按钮
     cancel() {
       this.open = false;
       this.reset();
     },
+    //变换作业票状态
+      statusWX (index, row) {
+        this.form = row;
+         row.zypzt = 10;
+          this.form.zypzt = 10;
+
+        updateJobticket(this.form).then(response => {
+          this.msgSuccess(this.$t('修改成功'));
+          this.open = false;
+          this.getList();
+        });
+      },
+      statusGBSH (index, row) {
+        this.form = row;
+      
+          this.form.zypzt = 18;
+       
+        updateJobticket(this.form).then(response => {
+          this.msgSuccess(this.$t('修改成功'));
+          this.open = false;
+          this.getList();
+        });
+      },
+      statusYQ (index, row) {
+        this.form = row;
+  
+          this.form.zypzt = 16;
+   
+        updateJobticket(this.form).then(response => {
+          this.msgSuccess(this.$t('修改成功'));
+          this.open = false;
+          this.getList();
+        });
+      },
+      statusZF (index, row) {
+        this.form = row;
+      
+          this.form.zypzt = 20;
+   
+        updateJobticket(this.form).then(response => {
+          this.msgSuccess(this.$t('修改成功'));
+          this.open = false;
+          this.getList();
+        });
+      },
+       wcxztYOU (index, row) {
+        this.form = row;
+      
+          this.form.wcxzt = 10;
+   
+        updateJobticket(this.form).then(response => {
+          this.msgSuccess(this.$t('修改成功'));
+          this.open = false;
+          this.getList();
+        });
+      },
+      
+       wcxztWU (index, row) {
+        this.form = row;
+      
+          this.form.wcxzt = 12;
+   
+        updateJobticket(this.form).then(response => {
+          this.msgSuccess(this.$t('修改成功'));
+          this.open = false;
+          this.getList();
+        });
+      },
+      
     // 表单重置
     reset() {
       this.form = {
@@ -736,9 +1001,12 @@ export default {
       this.reset();
       this.open = true;
       this.title = this.$t('新增') + " " + this.$t('工作票');
+      this.form.xpxp="10"
+      this.isxp=false
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
+      this.isxp=true
       this.reset();
       const id = row.id || this.ids
       getJobticket(id).then(response => {

+ 24 - 5
ui/src/views/invoice/bookingworkticket/index.vue

@@ -588,7 +588,8 @@ export default {
           { required: true, message: "作业类型不能为空", trigger: "blur" }
         ],
          workDescription: [
-          { required: true, message: "作业内容不能为空", trigger: "change" }
+          { required: true, message: "作业内容不能为空", trigger: "change" },
+          {validator: this.checkSame, trigger: 'blur'}
         ],
          riskLevel: [
           { required: true, message: "风险等级不能为空", trigger: "change" }
@@ -599,9 +600,6 @@ export default {
         estimateWorktime: [
           { required: true, message: "预计作业时间不能为空", trigger: "change" }
         ],
-        gczyxkzh1: [
-          { validator: validatePass2, trigger: 'blur'  }
-        ],
       }
     };
   },
@@ -647,6 +645,27 @@ export default {
 
   },
   methods: {
+    // 自定义校验重复数据规则
+    checkSame(rule, value, callback){
+      // rule 对应使用bargainMoney自定义验证的 对象
+      // value 对应使用bargainMoney自定义验证的 数值 
+      // callback 回调函数
+          let arr=[]
+          this.ruleForm.forEach(item => {
+
+          arr.push(item.workDescription)
+       }) 
+	         for (var i=0; i<arr.length; i++) {
+        for (var j=i+1; j<arr.length; j++) {
+            if (arr[i] == arr[j]) {
+                return callback(new Error("作业内容已重复,请重新填写"));
+            }else {
+        return callback();
+      }
+        }
+    }
+     
+    },
     //得到行key
     getRowKey(row) {
       return row.guid;
@@ -678,7 +697,7 @@ export default {
       });
         },
 
-    //得到区域下拉框
+    //得到作业区域下拉框
     getDeviceup(){
       const queryForm= {
         pageNum: 1,