Bläddra i källkod

提交用料比例计算

wang_xy 1 år sedan
förälder
incheckning
980dd6c651

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 782 - 766
src/components/ConstructionDetails/index.vue


+ 31 - 2
src/views/zdsz/enginMaterialQuality/index.vue

@@ -63,6 +63,17 @@
           ></el-option>
         </el-select>
       </el-form-item>
+      <el-form-item label="材料类型" prop="materialType">
+        <el-select v-model="queryParams.materialType" placeholder="请选择材料类型" filterable clearable
+                   style="width: 100%">
+          <el-option
+            v-for="dict in dict.type.material_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -149,6 +160,11 @@
           <dict-tag :options="dict.type.quality_type" :value="scope.row.nameType"/>
         </template>
       </el-table-column>
+      <el-table-column label="材料类型" align="center" prop="materialType" >
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.material_type" :value="scope.row.materialType"/>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -242,6 +258,17 @@
         <el-form-item label="材质名称" prop="name">
           <el-input v-model="form.name" placeholder="请输入材质名称" maxlength="50"/>
         </el-form-item>
+        <el-form-item label="材料类型" prop="materialType">
+          <el-select v-model="form.materialType" placeholder="请选择材料类型" filterable clearable
+                     style="width: 100%">
+            <el-option
+              v-for="dict in dict.type.material_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
@@ -263,7 +290,7 @@ import loginUser from "@/store/modules/user";
 export default {
   name: "EnginMaterialQuality",
   dicts: ['engin_type','old_renovation','new_built','old_renovation_indoor_engin','old_renovation_courtyard','old_renovation_overhead',
-    'new_built_indoor_engin','new_built_courtyard','new_built_overhead','quality_type'],
+    'new_built_indoor_engin','new_built_courtyard','new_built_overhead','quality_type','material_type'],
   data() {
     return {
       loginUserName:loginUser.state.name,
@@ -293,6 +320,7 @@ export default {
         pageNum: 1,
         pageSize: 10,
         enginType: undefined,
+        materialType:undefined,
         name: undefined,
       },
       // 表单参数
@@ -345,7 +373,8 @@ export default {
         enginStep: undefined,
         nameType: undefined,
         updateBy: undefined,
-        updateTime: undefined
+        updateTime: undefined,
+        materialType: undefined
       };
       this.resetForm("form");
     },

+ 31 - 2
src/views/zdsz/engineeringCivil/index.vue

@@ -202,6 +202,17 @@
       </el-col>
       <el-col :span="1.5">
         <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExportColor"
+          v-hasPermi="['zdsz:engineeringCivil:export']"
+        >颜色导出
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
           type="danger"
           icon="el-icon-circle-check"
           size="mini"
@@ -1401,6 +1412,7 @@ export default {
   },
   created() {
     this.getList();
+    this.getAreaList();
   },
   mounted() {
     this.listAll()
@@ -1773,8 +1785,8 @@ export default {
       this.open = false;
     },
     getAreaList(district) {
-      if (district === undefined || district == null || district === '')
-        return
+      // if (district === undefined || district == null || district === '')
+      //   return
       getAreaList({district: district}).then(res => this.areaList = res.data)
     },
     getBuildingList1(areaId) {
@@ -2103,6 +2115,23 @@ export default {
       this.download('zdsz/engineeringCivil/export', {
         ...this.queryParams1
       }, `民用工程-${new Date().getTime()}.xlsx`)
+    },
+    handleExportColor() {
+      if (this.queryParams1.district == undefined || this.queryParams1.district == null || this.queryParams1.district == '') {
+        this.$message.warning("请选择行政区")
+        return
+      }
+      if (this.queryParams1.enginType == undefined || this.queryParams1.enginType == null || this.queryParams1.enginType == '') {
+        this.$message.warning("请选择工程类型")
+        return
+      }
+      if (this.queryParams1.enginClassification == undefined || this.queryParams1.enginClassification == null || this.queryParams1.enginClassification == '') {
+        this.$message.warning("请选择工程分类")
+        return
+      }
+      this.download('zdsz/engineeringCivil/exportColor', {
+        ...this.queryParams1
+      }, `民用工程-${new Date().getTime()}.xlsx`)
     }
   }
 }

+ 26 - 10
src/views/zdsz/engineeringGY/index.vue

@@ -80,13 +80,19 @@
     <el-table v-loading="loading" :data="comprehensiveList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <el-table-column label="工程名称" align="center" prop="enginName"/>
-      <el-table-column label="工程分类" align="center" prop="enginType"/>
-      <el-table-column label="工程类型" align="center" prop="enginClassification"/>
-      <el-table-column label="工程名称" align="center" prop="enginName"/>
+      <el-table-column label="工程类型" align="center" prop="enginType"/>
+      <el-table-column label="工程分类" align="center" prop="enginClassification"/>
       <el-table-column label="现场负责人" align="center" prop="sceneHead"/>
       <el-table-column label="设计负责人" align="center" prop="designHead"/>
       <el-table-column label="监理负责人" align="center" prop="supervisionHead"/>
-      <el-table-column label="监理单位" align="center" prop="supervisionUnit"/>
+      <el-table-column label="用料比" align="center" prop="enginClassification" width="300px">
+        <template slot-scope="scope">
+          <div>
+            <span>PE{实际:{{scope.row.pesj}},预计:{{scope.row.pePreset}},占比:{{scope.row.peys == 0 ? 100:(scope.row.pesj / scope.row.pePreset * 100).toFixed(1)}}%}</span><br>
+            <span>钢材{实际:{{scope.row.gsj}},预计:{{scope.row.gcPreset}},占比:{{scope.row.gys == 0 ? 100:(scope.row.gsj / scope.row.gcPreset * 100).toFixed(1)}}%}</span>
+          </div>
+        </template>
+      </el-table-column>
       <el-table-column label="审核状态" align="center" prop="nodeReViewStateList" width="250">
         <template slot-scope="scope">
           <div style="text-align:center">
@@ -225,22 +231,30 @@
           <el-input v-model="form.supervisionPhone" placeholder="请填写监理联系电话" maxlength="13"
                     :readonly="title == '添加用料' "></el-input>
         </el-form-item>
-        <el-form-item label="工程类型" prop="enginClassification">
-          <el-select v-model="form.enginClassification" placeholder="请选择工程类型" style="width: 100%"  @change="clickByType"
+        <el-form-item label="PE管材预设" prop="pePreset">
+          <el-input v-model="form.pePreset" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="钢材预设" prop="gcPreset">
+          <el-input v-model="form.gcPreset" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="工程分类" prop="enginType">
+          <el-select v-model="form.enginType" placeholder="请选择工程分类" style="width: 100%"
                      :disabled="title == '添加用料' ">
             <el-option
-              v-for="e in enginClassificationList"
+              v-for="e in EngineepipeType"
               :key="e.dictValue"
               :label="e.dictLabel"
               :value="e.dictValue"
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="工程分类" prop="enginType">
-          <el-select v-model="form.enginType" placeholder="请选择工程分类" style="width: 100%"
+        <el-form-item label="工程类型" prop="enginClassification">
+          <el-select v-model="form.enginClassification" placeholder="请选择工程类型" style="width: 100%"  @change="clickByType"
                      :disabled="title == '添加用料' ">
             <el-option
-              v-for="e in EngineepipeType"
+              v-for="e in enginClassificationList"
               :key="e.dictValue"
               :label="e.dictLabel"
               :value="e.dictValue"
@@ -499,6 +513,8 @@ export default {
         supervisionUnit: '', // 监理单位
         supervisionHead: '', // 监理负责人
         supervisionPhone: '', // 监理联系电话
+        pePreset: 0, // PE管材预设量
+        gcPreset: 0, // 钢材预设量
         zEngineeringNodeBo: { // 工程节点
           type: '', // 节点类型
           zEngineeringInfoBo: { // 施工信息

+ 45 - 10
src/views/zdsz/engineeringIndustry/index.vue

@@ -71,11 +71,24 @@
       <el-table-column type="selection" width="55" align="center"/>
       <el-table-column label="工程名称" align="center" prop="enginName"/>
       <el-table-column label="工程类型" align="center" prop="enginType"/>
-      <el-table-column label="工程名称" align="center" prop="enginName"/>
+<!--      <el-table-column label="工程分类" align="center" prop="enginClassification">-->
+<!--        <template slot-scope="scope">-->
+<!--          <dict-tag :options="dict.type.engin_classification" :value="scope.row.enginClassification"/>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
       <el-table-column label="现场负责人" align="center" prop="sceneHead"/>
       <el-table-column label="设计负责人" align="center" prop="designHead"/>
       <el-table-column label="监理负责人" align="center" prop="supervisionHead"/>
-      <el-table-column label="监理单位" align="center" prop="supervisionUnit"/>
+
+      <el-table-column label="用料比" align="center" prop="enginClassification" width="300px">
+        <template slot-scope="scope">
+          <div>
+            <span>PE{实际:{{scope.row.pesj}},预计:{{scope.row.pePreset}},占比:{{scope.row.peys == 0 ? 100:(scope.row.pesj / scope.row.pePreset * 100).toFixed(1)}}%}</span><br>
+            <span>钢材{实际:{{scope.row.gsj}},预计:{{scope.row.gcPreset}},占比:{{scope.row.gys == 0 ? 100:(scope.row.gsj / scope.row.gcPreset * 100).toFixed(1)}}%}</span>
+          </div>
+        </template>
+      </el-table-column>
+
       <el-table-column label="审核状态" align="center" prop="nodeReViewStateList" width="250">
         <template slot-scope="scope">
           <div style="text-align:center">
@@ -84,9 +97,11 @@
               placement="top-start"
               trigger="hover"
               :content="item.Type">
-              <span slot="reference" v-if="(item.state == '1'||item.state == '2')"
+              <span slot="reference" v-if="item.state == '0' && item.content=='暂未审核'"
+                    style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>
+              <span slot="reference" v-else-if="item.state == '1' "
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #30B08F;"></span>
-              <span slot="reference" v-if="item.state == '0' "
+              <span slot="reference" v-else
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #C03639;"></span>
             </el-popover>
           </div>
@@ -214,6 +229,14 @@
           <el-input v-model="form.supervisionPhone" placeholder="请填写监理联系电话" maxlength="13"
                     :readonly="title == '添加用料' "></el-input>
         </el-form-item>
+        <el-form-item label="PE管材预设" prop="pePreset">
+          <el-input v-model="form.pePreset" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="钢材预设" prop="gcPreset">
+          <el-input v-model="form.gcPreset" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
         <el-form-item label="工程类型" prop="enginType">
           <el-select v-model="form.enginType" placeholder="请选择工程类型" style="width: 100%"
                      :disabled="title == '添加用料' ">
@@ -225,6 +248,16 @@
             ></el-option>
           </el-select>
         </el-form-item>
+<!--        <el-form-item label="工程分类" prop="enginClassification">-->
+<!--          <el-select v-model="form.enginClassification" placeholder="请选择工程分类" style="width: 100%">-->
+<!--            <el-option-->
+<!--              v-for="e in dict.type.engin_classification"-->
+<!--              :key="e.value"-->
+<!--              :label="e.label"-->
+<!--              :value="e.value"-->
+<!--            ></el-option>-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="附件" v-if="form.id" style="width: 100%">
@@ -401,7 +434,7 @@ import EnginNodeInfo from "@/components/EnginNodeInfo/indexSZ.vue";
 
 export default {
   name: "市政",
-  dicts: [],
+  dicts: ['engin_classification'],
   components: {
     EnginNodeInfo,
     ConstructionDetails,
@@ -474,6 +507,8 @@ export default {
         supervisionUnit: '', // 监理单位
         supervisionHead: '', // 监理负责人
         supervisionPhone: '', // 监理联系电话
+        pePreset: 0, // PE管材预设量
+        gcPreset: 0, // 钢材预设量
         zEngineeringNodeBo: { // 工程节点
           type: '', // 节点类型
           zEngineeringInfoBo: { // 施工信息
@@ -922,11 +957,11 @@ export default {
             this.form.zEngineeringNodeBo = this.zEngineeringNodeBo
             this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
           }
-          if (this.form.enginClassification && this.form.enginClassification != [] && this.form.enginClassification.length > 0) {
-            this.form.enginClassification = this.form.enginClassification.join(',');
-          } else {
-            this.form.enginClassification = ""
-          }
+          // if (this.form.enginClassification && this.form.enginClassification != [] && this.form.enginClassification.length > 0) {
+          //   this.form.enginClassification = this.form.enginClassification.join(',');
+          // } else {
+          //   this.form.enginClassification = ""
+          // }
 
           if (this.form.id == null) {
             addEngineeEngineeIndustry(this.form).then(res => {