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

调整安全检查(临时)登记界面布局

jiawuxian 1 рік тому
батько
коміт
3591149999

+ 5 - 0
src/components/elDialog/dialog.vue

@@ -27,6 +27,11 @@ export default {
 .dialog-footer {
   text-align: right;
 }
+
+.dialog-footer-withmargin{
+  text-align: right;
+  margin-top:20px;
+}
 .el-dialog{
   margin:  0 auto;
 }

+ 7 - 1
src/views/safetycheck/ruleManager/dialog.select.point.vue

@@ -49,9 +49,15 @@
         <template slot="columns">
           <el-table-column
             align="center"
+            prop="ruleName"
+            label="检查手册"
+            min-width="20%"
+          ></el-table-column>
+          <el-table-column
+            align="center"
             prop="itemName"
             label="检查项"
-            min-width="40%"
+            min-width="20%"
           ></el-table-column>
           <el-table-column
             align="center"

+ 105 - 54
src/views/safetycheck/task/components/checkRegister.vue

@@ -3,7 +3,7 @@
   <div class="app-container">
     <el-form
       ref="point_baseInfo"
-      :model="info"
+      :model="taskInfo"
       :rules="baseInfoRules"
       label-width="120px"
     >
@@ -11,7 +11,7 @@
         <el-col :span="6">
           <el-form-item label="任务名称" prop="taskName">
             <el-input
-              v-model="info.taskName"
+              v-model="taskInfo.taskName"
               placeholder="请输入任务名称"
               maxlength="50"
             ></el-input> </el-form-item
@@ -19,7 +19,7 @@
         <el-col :span="6"
           ><el-form-item label="检查主体" prop="checkOrgId">
             <orgDropDown
-              v-model="info.checkOrgId"
+              v-model="taskInfo.checkOrgId"
               placeholder="选择检查主体"
               @select="onCheckOrgSelect"
               orgTreeType="org"
@@ -28,7 +28,7 @@
         <el-col :span="6">
           <el-form-item label="检查人员" prop="checkRoleId">
             <el-select
-              v-model="info.checkRoleId"
+              v-model="taskInfo.checkRoleId"
               placeholder="请选择检查人员"
               style="width: 100%"
               clearable
@@ -46,7 +46,7 @@
         <el-col :span="6">
           <el-form-item label="受检机构" prop="beCheckedOrgId">
             <orgDropDown
-              v-model="info.beCheckedOrgId"
+              v-model="taskInfo.beCheckedOrgId"
               placeholder="选择受检机构"
               @select="onBecheckOrgSelect"
               orgTreeType="org"
@@ -58,7 +58,7 @@
             <el-input
               style="width: 100%"
               placeHolder="请输入检查组成员"
-              v-model="info.checkTeam"
+              v-model="taskInfo.checkTeam"
               maxlength="100"
               clearable
             ></el-input> </el-form-item
@@ -67,7 +67,7 @@
           <el-form-item label="检查日期" prop="planStartTime">
             <el-date-picker
               style="width: 100%"
-              v-model="info.planStartTime"
+              v-model="taskInfo.planStartTime"
               type="date"
               placeholder="选择检查日期"
               clearable
@@ -78,7 +78,6 @@
       </el-row>
     </el-form>
     <div style="margin-left: 42px">
-      <span style="margin-right: 20px">检查区域</span>
       <el-button type="primary" size="mini" @click="onAddPoint()"
         >选择检查内容</el-button
       >
@@ -86,26 +85,48 @@
     <div class="content">
       <div
         class="area_content"
-        v-for="area in info.checkList"
-        :key="area.areaId"
+        style="font-weight: 700; background-color: white"
       >
+        <div style="background-color: inherit">检查手册</div>
         <div>
-          {{ area.areaName }}
+          <div class="safetycheck_item">
+            <div style="padding-left: 10px; display: flex">
+              <div class="name namePadding" style="text-align: center">
+                检查内容
+              </div>
+              <div class="point_areaname">检查区域</div>
+              <div class="point_btn" style="text-align: center">检查结果</div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div
+        class="area_content"
+        v-for="rule in taskInfo.checkList"
+        :key="rule.ruleId"
+      >
+        <div>
+          {{ rule.ruleName }}
         </div>
         <div>
           <div
             class="safetycheck_item"
-            v-for="(item, index) in area.itemList"
+            v-for="(item, index) in rule.itemList"
             :key="item.itemId"
           >
             <div
-              style="background-color: #d1e0f1 !important; padding-left: 10px"
+              style="
+                background-color: #d1e0f1 !important;
+                padding-left: 10px;
+                display: flex;
+              "
             >
               <div class="name namePadding">
-                {{ arabicToChinese(index + 1) }}、{{ item.itemName }}
+                检查项:{{ arabicToChinese(index + 1) }}、{{ item.itemName }}
               </div>
+              <div class="point_areaname"></div>
+              <!-- <div class="namePadding" style="padding-left:20px;">检查结果</div> -->
             </div>
-
             <div
               class="safetycheck_point"
               v-for="(point, pIndex) in item.pointList"
@@ -114,7 +135,7 @@
               <div class="pointContent name">
                 <div class="pointName namePadding">
                   <div class="text_nbsp">
-                    {{ pIndex + 1 + ".   " + point.pointName }}
+                    {{ pIndex + 1 + "" + point.pointName }}
                   </div>
                   <!-- <i class="circle" /> -->
                 </div>
@@ -131,10 +152,13 @@
                         style="width: 250px"
                         placeholder="请输入情况描述"
                         maxlength="255"
-                      ></el-input>
-                    </el-form-item>
-                    <el-form-item label="整改期限" prop="rectificationDeadline">
+                      ></el-input> </el-form-item
+                    ><el-form-item
+                      label="整改期限"
+                      prop="rectificationDeadline"
+                    >
                       <el-select
+                        style="width: 250px"
                         v-model="point.rectificationDeadline"
                         placeholder="请选择整改期限"
                       >
@@ -146,6 +170,7 @@
                         ></el-option>
                       </el-select>
                     </el-form-item>
+
                     <el-form-item label="异常图片" prop="image">
                       <imgUpload
                         type="more"
@@ -160,21 +185,24 @@
                   </el-form>
                 </div>
               </div>
+              <div class="point_areaname">
+                {{ point.areaName }}
+              </div>
               <div class="point_btn">
                 <el-radio-group
                   v-model="point.status"
-                  style="margin-top: 5px; margin-left: 20px"
+                  style="margin-left: 20px"
                 >
                   <el-radio :label="0">正常</el-radio>
                   <el-radio :label="1">异常</el-radio>
                 </el-radio-group>
-                <div>
+                <div style="margin-top: -5px">
                   <el-button
                     type="danger"
                     size="mini"
                     v-if="point.isAdd"
                     style="margin-left: 50px"
-                    @click="onDeletePoint(area, item, point)"
+                    @click="onDeletePoint(rule, item, point)"
                     >删除</el-button
                   >
                 </div>
@@ -197,7 +225,7 @@
     </div>
     <SelectPoint
       ref="SelectPoint"
-      :orgType="[info.beCheckOrgType]"
+      :orgType="[taskInfo.beCheckOrgType]"
       @select="onSelectPoint"
     ></SelectPoint>
   </div>
@@ -216,7 +244,7 @@ export default {
   name: "safetyCheckRegister",
   data() {
     return {
-      info: {
+      taskInfo: {
         taskName: null,
         checkOrgId: null,
         checkRoleId: null,
@@ -250,8 +278,8 @@ export default {
     ...mapGetters(["orgId", "roleList", "userId"]),
   },
   mounted() {
-    this.info.checkOrgId = this.orgId;
-    this.info.checkRoleId = this.roleList[0].roleId;
+    this.taskInfo.checkOrgId = this.orgId;
+    this.taskInfo.checkRoleId = this.roleList[0].roleId;
   },
   methods: {
     dayjs,
@@ -271,15 +299,15 @@ export default {
       getNamesByOrgId(node.id).then((r) => {
         this.roleOptions = r.data;
         this.prevCheckOrgType = node.type;
-        if (!this.roleOptions.find((op) => op.id == this.info.checkRoleId)) {
-          this.info.checkRoleId = null;
+        if (!this.roleOptions.find((op) => op.id == this.taskInfo.checkRoleId)) {
+          this.taskInfo.checkRoleId = null;
         }
       });
     },
     onBecheckOrgSelect(node) {
       if (node == null) {
         this.prevBecheckedOrgType = null;
-        this.info.checkList = [];
+        this.taskInfo.checkList = [];
         return;
       }
 
@@ -287,21 +315,21 @@ export default {
         return;
       }
       this.$refs["point_baseInfo"].clearValidate(["beCheckedOrgId"]);
-      this.info.checkList = [];
+      this.taskInfo.checkList = [];
       this.prevBecheckedOrgType = node.type;
-      this.info.beCheckOrgType = node.type;
+      this.taskInfo.beCheckOrgType = node.type;
     },
     onAddPoint() {
-      if (!this.info.beCheckedOrgId) {
+      if (!this.taskInfo.beCheckedOrgId) {
         this.$message.info("请先选择受检机构");
         return;
       }
-      if (!this.info.beCheckOrgType) {
+      if (!this.taskInfo.beCheckOrgType) {
         this.$message.warning("受检机构的机构类型未知");
         return;
       }
       this.pointIdsWhenAdd = [];
-      this.info.checkList.forEach((a) => {
+      this.taskInfo.checkList.forEach((a) => {
         a.itemList.forEach((i) => {
           i.pointList.forEach((p) => {
             this.pointIdsWhenAdd.push(p.pointId);
@@ -317,17 +345,17 @@ export default {
         if (this.pointIdsWhenAdd.indexOf(p.id) >= 0) {
           continue;
         }
-        let info = this.info;
-        let area = info.checkList.find((a) => a.areaId === p.areaId);
-        if (!area) {
-          area = { areaId: p.areaId, areaName: p.areaName, itemList: [] };
-          info.checkList.push(area);
+        let taskInfo = this.taskInfo;
+        let rule = taskInfo.checkList.find((a) => a.ruleId === p.ruleId);
+        if (!rule) {
+          rule = { ruleId: p.ruleId, ruleName: p.ruleName, itemList: [] };
+          taskInfo.checkList.push(rule);
         }
 
-        let item = area.itemList.find((i) => i.itemId == p.itemId);
+        let item = rule.itemList.find((i) => i.itemId == p.itemId);
         if (!item) {
           item = { itemId: p.itemId, itemName: p.itemName, pointList: [] };
-          area.itemList.push(item);
+          rule.itemList.push(item);
         }
 
         let point = item.pointList.find((i) => i.pointId == p.id);
@@ -335,6 +363,8 @@ export default {
           point = {
             pointId: p.id,
             pointName: p.pointName,
+            areaId:p.areaId,
+            areaName:p.areaName,
             mustCheck: 1,
             isAdd: 1,
             status: 0,
@@ -355,7 +385,7 @@ export default {
       }
     },
 
-    onDeletePoint(area, item, point) {
+    onDeletePoint(rule, item, point) {
       if (point.isAdd === 0) {
         this.$message.warning("不可删除计划的检查内容");
         return;
@@ -367,13 +397,13 @@ export default {
       }
 
       if (item.pointList.length === 0) {
-        index = area.itemList.indexOf(item);
-        area.itemList.splice(index, 1);
+        index = rule.itemList.indexOf(item);
+        rule.itemList.splice(index, 1);
       }
 
-      if (area.itemList.length === 0) {
-        index = this.info.checkList.indexOf(area);
-        this.info.checkList.splice(index, 1);
+      if (rule.itemList.length === 0) {
+        index = this.taskInfo.checkList.indexOf(rule);
+        this.taskInfo.checkList.splice(index, 1);
       }
     },
     onImageChanged(point, value) {
@@ -385,8 +415,8 @@ export default {
       this.$tab.closePageAndPushPrev();
     },
     onSave() {
-      this.info.isSubmit = 0;
-      api.tempSubmit(this.info).then((r) => {
+      this.taskInfo.isSubmit = 0;
+      api.tempSubmit(this.taskInfo).then((r) => {
         this.$message.info("保存成功");
       });
     },
@@ -409,9 +439,9 @@ export default {
         }
       }
       if (isOk) {
-        this.info.isSubmit = 1;
-        let data = { ...this.info };
-        data.checkRoles = [{ id: this.info.checkRoleId }];
+        this.taskInfo.isSubmit = 1;
+        let data = { ...this.taskInfo };
+        data.checkRoles = [{ id: this.taskInfo.checkRoleId }];
         api.tempSubmit(data).then((r) => {
           this.$message.info("提交成功");
           this.$tab.closePageAndPushPrev();
@@ -503,11 +533,32 @@ export default {
     display: flex;
     flex-direction: row;
   }
+
+  ::v-deep .el-upload--picture-card {
+    width: 100px;
+    height: 100px;
+    line-height: 100px;
+  }
+
+  ::v-deep .el-upload-list--picture-card .el-upload-list__item{
+    width: 100px;
+    height: 100px;
+    line-height: 100px;
+  }
 }
 
+.point_areaname {
+  padding-top: 10px;
+  width: 150px;
+  border-right: #b8bdc0 1px solid;
+  text-align: center;
+  display: inline-block !important;
+}
 .point_btn {
-  padding-top: 5px;
-  width: 600px;
+  // flex-direction: column !important;
+  // justify-content: center;
+  padding-top:10px;
+  width: 450px;
 }
 
 .pointName {

+ 1 - 1
src/views/safetycheck/task/components/detail.vue

@@ -125,7 +125,7 @@
             label="检查项"
             prop="itemName"
             :show-overflow-tooltip="true"
-            ><template slot-scope="scope">
+            ><template slot-scope="scope">检查项:
               ({{ arabicToChinese(scope.$index + 1) }}){{
                 scope.row.itemName
               }}

+ 86 - 35
src/views/safetycheck/task/components/register.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-descriptions title="检查任务" border :labelStyle="{'width':'180px'}">
+    <el-descriptions title="检查任务" border :labelStyle="{ width: '180px' }">
       <el-descriptions-item label="任务名称">{{
         taskInfo.taskName
       }}</el-descriptions-item>
@@ -38,7 +38,6 @@
     </el-descriptions>
     <el-row class="el-row-button">
       <el-col>
-        <span style="margin-right: 20px">检查区域</span>
         <el-button type="primary" size="mini" @click="onAddPoint()"
           >新增检查内容</el-button
         >
@@ -48,24 +47,46 @@
     <div class="content">
       <div
         class="area_content"
-        v-for="area in taskInfo.checkList"
-        :key="area.areaId"
+        style="font-weight: 700; background-color: white"
       >
+        <div style="background-color: inherit">检查手册</div>
         <div>
-          {{ area.areaName }}
+          <div class="safetycheck_item">
+            <div style="padding-left: 10px; display: flex">
+              <div class="name namePadding" style="text-align: center">
+                检查内容
+              </div>
+              <div class="point_areaname">检查区域</div>
+              <div class="point_btn" style="text-align: center">检查结果</div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div
+        class="area_content"
+        v-for="rule in taskInfo.checkList"
+        :key="rule.ruleId"
+      >
+        <div>
+          {{ rule.ruleName }}
         </div>
         <div>
           <div
             class="safetycheck_item"
-            v-for="(item, index) in area.itemList"
+            v-for="(item, index) in rule.itemList"
             :key="item.itemId"
           >
             <div
-              style="background-color: #d1e0f1 !important; padding-left: 10px;display:flex"
+              style="
+                background-color: #d1e0f1 !important;
+                padding-left: 10px;
+                display: flex;
+              "
             >
               <div class="name namePadding">
-                {{ arabicToChinese(index + 1) }}、{{ item.itemName }}
-              </div >
+                检查项:{{ arabicToChinese(index + 1) }}、{{ item.itemName }}
+              </div>
+              <div class="point_areaname"></div>
               <!-- <div class="namePadding" style="padding-left:20px;">检查结果</div> -->
             </div>
             <div
@@ -76,7 +97,7 @@
               <div class="pointContent name">
                 <div class="pointName namePadding">
                   <div class="text_nbsp">
-                    {{ pIndex + 1 + ".   " + point.pointName }}
+                    {{ pIndex + 1 + "" + point.pointName }}
                   </div>
                   <!-- <i class="circle" /> -->
                 </div>
@@ -90,13 +111,16 @@
                     <el-form-item label="情况描述" prop="remark">
                       <el-input
                         v-model="point.remark"
-                        style="width: 250px"
+                        style="width:250px"
                         placeholder="请输入情况描述"
                         maxlength="255"
-                      ></el-input>
-                    </el-form-item>
-                    <el-form-item label="整改期限" prop="rectificationDeadline">
+                      ></el-input> </el-form-item
+                    ><el-form-item
+                      label="整改期限"
+                      prop="rectificationDeadline"
+                    >
                       <el-select
+                        style="width:250px"
                         v-model="point.rectificationDeadline"
                         placeholder="请选择整改期限"
                       >
@@ -108,6 +132,7 @@
                         ></el-option>
                       </el-select>
                     </el-form-item>
+
                     <el-form-item label="异常图片" prop="image">
                       <imgUpload
                         type="more"
@@ -122,21 +147,24 @@
                   </el-form>
                 </div>
               </div>
-              <div class="point_btn">
-                <el-radio-group
+              <div class="point_areaname">
+                {{ point.areaName }}
+              </div>
+              <div class="point_btn">               
+                  <el-radio-group
                   v-model="point.status"
-                  style="margin-top: 5px; margin-left: 20px"
+                  style=" margin-left: 20px"
                 >
                   <el-radio :label="0">正常</el-radio>
                   <el-radio :label="1">异常</el-radio>
                 </el-radio-group>
-                <div>
+                <div style="margin-top: -5px;">
                   <el-button
                     type="danger"
                     size="mini"
                     v-if="point.isAdd"
                     style="margin-left: 50px"
-                    @click="onDeletePoint(area, item, point)"
+                    @click="onDeletePoint(rule, item, point)"
                     >删除</el-button
                   >
                 </div>
@@ -263,16 +291,16 @@ export default {
           continue;
         }
         let info = this.taskInfo;
-        let area = info.checkList.find((a) => a.areaId === p.areaId);
-        if (!area) {
-          area = { areaId: p.areaId, areaName: p.areaName, itemList: [] };
-          info.checkList.push(area);
+        let rule = info.checkList.find((a) => a.ruleId === p.ruleId);
+        if (!rule) {
+          rule = { ruleId: p.ruleId, ruleName: p.ruleName, itemList: [] };
+          info.checkList.push(rule);
         }
 
-        let item = area.itemList.find((i) => i.itemId == p.itemId);
+        let item = rule.itemList.find((i) => i.itemId == p.itemId);
         if (!item) {
           item = { itemId: p.itemId, itemName: p.itemName, pointList: [] };
-          area.itemList.push(item);
+          rule.itemList.push(item);
         }
 
         let point = item.pointList.find((i) => i.pointId == p.id);
@@ -280,6 +308,8 @@ export default {
           point = {
             pointId: p.id,
             pointName: p.pointName,
+            areaId:p.areaId,
+            areaName:p.areaName,
             mustCheck: 1,
             isAdd: 1,
             status: 0,
@@ -302,7 +332,7 @@ export default {
     onClose() {
       this.$tab.closePageAndPushPrev();
     },
-    onDeletePoint(area, item, point) {
+    onDeletePoint(rule, item, point) {
       if (point.isAdd === 0) {
         this.$message.warning("不可删除计划的检查内容");
         return;
@@ -314,12 +344,12 @@ export default {
       }
 
       if (item.pointList.length === 0) {
-        index = area.itemList.indexOf(item);
-        area.itemList.splice(index, 1);
+        index = rule.itemList.indexOf(item);
+        rule.itemList.splice(index, 1);
       }
 
-      if (area.itemList.length === 0) {
-        index = this.taskInfo.checkList.indexOf(area);
+      if (rule.itemList.length === 0) {
+        index = this.taskInfo.checkList.indexOf(rule);
         this.taskInfo.checkList.splice(index, 1);
       }
     },
@@ -392,7 +422,7 @@ export default {
         return;
       }
       let isOk = true;
-      
+
       for (let area of this.taskInfo.checkList) {
         for (let item of area.itemList) {
           for (let point of item.pointList) {
@@ -404,9 +434,9 @@ export default {
         }
       }
       let r = this.$refs;
-      
+
       for (let p in this.$refs) {
-        if (p.startsWith("point") && r.length>0) {
+        if (p.startsWith("point") && r.length > 0) {
           try {
             isOk &= await r[0].validate();
           } catch (e) {
@@ -517,11 +547,32 @@ export default {
     display: flex;
     flex-direction: row;
   }
+
+  ::v-deep .el-upload--picture-card {
+    width: 100px;
+    height: 100px;
+    line-height: 100px;
+  }
+
+  ::v-deep .el-upload-list--picture-card .el-upload-list__item{
+    width: 100px;
+    height: 100px;
+    line-height: 100px;
+  }
 }
 
+.point_areaname {
+  padding-top: 10px;
+  width: 150px;
+  border-right: #b8bdc0 1px solid;
+  text-align: center;
+  display: inline-block !important;
+}
 .point_btn {
-  padding-top: 5px;
-  width: 600px;
+  // flex-direction: column !important;
+  // justify-content: center;
+  padding-top:10px;
+  width: 450px;
 }
 
 .pointName {

+ 1 - 1
src/views/safetycheck/task/dialog.scanrecord.vue

@@ -67,7 +67,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer" class="dialog-footer-withmargin">
         <el-button @click="onHide">取消</el-button>
       </div>
     </DialogCom>