Kaynağa Gözat

提交代码

JX.Li 1 yıl önce
ebeveyn
işleme
c842c3cc71

+ 7 - 0
src/api/zdsz/engineeringDangerous.js

@@ -25,6 +25,13 @@ export function addEngineeringDangerous(data) {
     data: data
   })
 }
+export function engineeringDangerousReview(data) {
+  return request({
+    url: '/zdsz/engineeringDangerous/review',
+    method: 'post',
+    data: data
+  })
+}
 
 // 修改危险工程
 export function updateEngineeringDangerous(data) {

+ 130 - 6
src/views/zdsz/engineeringDangerous/index.vue

@@ -99,6 +99,17 @@
           <span>{{ parseTime(scope.row.enginTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
+      <el-table-column label="审核状态" align="center" prop="reviewStatus" width="250">
+        <template slot-scope="scope">
+          <div style="text-align:center">
+
+              <span slot="reference" v-if="(scope.row.reviewStatus == '1')"
+                    style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #30B08F;"></span>
+              <span slot="reference" v-else
+                    style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #C03639;"></span>
+          </div>
+        </template>
+      </el-table-column>
       <!--      <el-table-column label="管径" align="center" prop="pipeDiameter"/>
             <el-table-column label="管材" align="center" prop="tubularProduct"/>
             <el-table-column label="是否存在套管" align="center" prop="casingPresent"/>
@@ -142,6 +153,14 @@
           <el-button
             size="mini"
             type="text"
+            icon="el-icon-edit"
+            @click="reviewClick(scope.row)"
+            v-hasPermi="['zdsz:engineeringDangerous:edit']"
+          >审核
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['zdsz:engineeringDangerous:remove']"
@@ -161,6 +180,12 @@
             @click="viewSource(scope.row)"
           >历史
           </el-button>
+          <el-button
+            type="text"
+            icon="el-icon-download"
+            size="mini"
+            @click="download(scope.row.enginName)"
+          >下载图片</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -421,8 +446,44 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
-    <el-dialog :title="titleInfo"  :visible.sync="openInfo" append-to-body customClass="appendElDialog">
+    <el-dialog :title="titleInfo" :visible.sync="openInfo" append-to-body customClass="appendElDialog">
+      <el-collapse v-model="activeNames">
 
+        <el-collapse-item :title="key" :name="index" v-for="(val,key,index) in dataInfo">
+          <span v-if="val.length > 0" style="font-size: 15px">
+            施工人:{{ val[0].createByName }}
+            <span style="margin-left: 20px">
+              施工时间:{{ val[0].updateInfoTime }}
+            </span>
+            <br>
+          </span>
+          <div v-for="(item,index) in val" style="display:inline-block">
+            <el-image :src="item.picUrl" style="width: 150px; height: 150px; margin-right: 15px"></el-image>
+          </div>
+        </el-collapse-item>
+      </el-collapse>
+    </el-dialog>
+    <el-dialog title="审核" :visible.sync="reviewOpen" width="500px">
+      <el-form ref="reviewFrom" :model="reviewFrom" :rules="reviewRule" label-width="80px">
+        <el-form-item label="活动区域" prop="reviewStatus">
+          <el-select v-model="reviewFrom.reviewStatus" placeholder="请选择审核状态" style="width: 100%" label="审核状态"
+                     @change="validateCHanged">
+            <el-option
+              v-for="e in reviewStatusList"
+              :key="e.value"
+              :label="e.label"
+              :value="e.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="活动形式" prop="reviewRemark">
+          <el-input type="textarea" v-model="reviewFrom.reviewRemark"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="onSubmit">提交</el-button>
+        <el-button @click="reviewOpen = false;reviewFrom={}">取消</el-button>
+      </div>
     </el-dialog>
   </div>
 </template>
@@ -431,7 +492,11 @@
 import {
   listEngineeringDangerous,
   getEngineeringDangerous,
-  delEngineeringDangerous, queryEngineeringDangerous, updateEngineeringDangerous, addEngineeringDangerous,
+  delEngineeringDangerous,
+  queryEngineeringDangerous,
+  updateEngineeringDangerous,
+  addEngineeringDangerous,
+  engineeringDangerousReview,
 } from "@/api/zdsz/engineeringDangerous";
 import data from "@/views/system/dict/data.vue";
 import {validPhoneMobile, checkPositiveDecimal} from "@/api/rules";
@@ -447,8 +512,18 @@ export default {
   components: {},
   data() {
     return {
-      //备用
-      // openNodeForm:false,
+      reviewFrom: {},
+      reviewOpen: false,
+      reviewStatusList: [
+        {
+          value: '1',
+          label: '通过'
+        },
+        {
+          value: '0',
+          label: '不通过'
+        }
+      ],
       //备用
       currentCollapses: [],
       nodeType: "危险作业工程",
@@ -461,6 +536,7 @@ export default {
       loading: true,
       // 选中数组
       ids: [],
+      activeNames: [],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -555,6 +631,7 @@ export default {
       ],
       // 表单参数
       form: {},
+      dataInfo: {},
       // 表单校验
       rules: {
         basicInformation: [
@@ -587,6 +664,14 @@ export default {
         ],
 
       },
+      reviewRule: {
+        reviewStatus: [
+          {required: true, message: "审核状态不能为空", trigger: "blur"}
+        ],
+        reviewRemark: [
+          {required: true, message: "审核内容不能为空", trigger: "change"}
+        ],
+      },
       //备用
       currentType: null, // 组件类型 put修改 add新增
     };
@@ -595,6 +680,35 @@ export default {
     this.getList();
   },
   methods: {
+    download(name){
+      // downloadZip('基建工程',name)
+      this.$download.zip(`/zdsz/engineeringPipeJacking/downloadZip/危险工程/${name}`, name);
+    },
+    validateCHanged(e) {
+      this.reviewStatusList[e].label == '通过' ? this.reviewRule.reviewRemark[0].required = true : this.reviewRule.reviewRemark[0].required = false
+    },
+    onSubmit() {
+      this.$refs.reviewFrom.validate(valid => {
+        if (valid) {
+          engineeringDangerousReview(this.reviewFrom).then(response => {
+            if (response.code === 200){
+              this.$modal.msgSuccess("审核成功");
+              this.getList()
+            }
+          }).finally(() => this.reviewOpen = false)
+        }
+      })
+    },
+    reviewClick(data) {
+      this.reviewFrom = {
+        id: data.id,
+        enginName: data.enginName,
+        createTime: data.createTime,
+        reviewStatus: data.reviewStatus==null?null:data.reviewStatus,
+        reviewRemark: data.reviewRemark==null?null:data.reviewRemark,
+      }
+      this.reviewOpen = true
+    },
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
@@ -633,9 +747,19 @@ export default {
 
     //备用
     viewSource(e) {
-      console.log(e)
-      this.openInfo = true
       this.titleInfo = "危险作业工程 - " + e.enginName
+      getEngineeringDangerous(e.id).then(res => {
+        let uniqueArr = res.data.pics.reduce((acc, currentValue) => {
+          if (!acc.includes(currentValue.updateTime)) {
+            acc.push(currentValue.updateTime);
+          }
+          return acc;
+        }, []);
+        for (let i = 0; i < uniqueArr.length; i++) {
+          this.dataInfo[uniqueArr[i]] = res.data.pics.filter(item => item.updateTime == uniqueArr[i])
+        }
+        this.openInfo = true
+      }).catch(err => this.openInfo = false)
     },
     viewNodeSource(e) {
       // todo: 获取数据