Procházet zdrojové kódy

Merge branch 'greenUrgent' into allTestUrgent

qymljy před 4 měsíci
rodič
revize
4726c51400

+ 11 - 1
src/HDrpManagement/serveBill/components/workProgress.vue

@@ -22,6 +22,16 @@
             :label="$t(`工单负责人`)"
             :label="$t(`工单负责人`)"
             width="180">
             width="180">
           </el-table-column>
           </el-table-column>
+          <el-table-column
+              prop="status"
+              :label="$t(`状态`)"
+              width="180">
+            <template slot-scope="scope">
+              <span :style="tool.getStatusColor(scope.row.status)">{{
+                  $t(scope.row.status)
+                }}</span>
+            </template>
+          </el-table-column>
           <el-table-column
           <el-table-column
             :label="$t('省市县')">
             :label="$t('省市县')">
             <template slot-scope="scope">
             <template slot-scope="scope">
@@ -68,7 +78,7 @@ export default {
     return {
     return {
       visible:false,
       visible:false,
       param:{
       param:{
-        "id": "20230208140203",
+        "id": "2026020515100102",
         "version":1,
         "version":1,
         "content": {
         "content": {
           "pageSize":20,
           "pageSize":20,

+ 41 - 41
src/HDrpManagement/serveWorkBill/components/edit.vue

@@ -21,46 +21,46 @@
             label-position="top"
             label-position="top"
             size="mini"
             size="mini"
           >
           >
-            <el-col :span="24">
-              <el-form-item :label="$t(`服务类型`)+':'" prop="servicetype">
-                <el-select
-                    class="inline-24"
-                    v-model="form.servicetype"
-                    :placeholder="$t(`请选择服务类型`)"
-                    size="small"
-                    clearable
-                >
-                  <el-option :label="$t(`售前`)" value="售前"></el-option>
-                  <el-option :label="$t(`售中`)" value="售中"></el-option>
-                  <el-option :label="$t(`售后`)" value="售后"></el-option>
-                  <el-option
-                      :label="$t(`历史售后`)"
-                      :value="$t(`历史售后`)"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24" v-if="form.servicetype == '售中' || form.servicetype == '售后'">
-              <el-form-item :label="$t(`订单号`)+':'" prop="sonum" >
-                <selectOrder
-                    :id="form.sys_enterpriseid"
-                    ref="order"
-                    @selectRow="orderChange"
-                >
-                  <el-input
-                      readonly
-                      :disabled="!form.sys_enterpriseid"
-                      type="text"
-                      slot="input"
-                      size="mini"
-                      @focus="
-                      $refs.order.listData(), ($refs.order.visible = true)
-                    "
-                      v-model="form.sonum"
-                  ></el-input>
-                </selectOrder>
-              </el-form-item>
-            </el-col>
+<!--            <el-col :span="24">-->
+<!--              <el-form-item :label="$t(`服务类型`)+':'" prop="servicetype">-->
+<!--                <el-select-->
+<!--                    class="inline-24"-->
+<!--                    v-model="form.servicetype"-->
+<!--                    :placeholder="$t(`请选择服务类型`)"-->
+<!--                    size="small"-->
+<!--                    clearable-->
+<!--                >-->
+<!--                  <el-option :label="$t(`售前`)" value="售前"></el-option>-->
+<!--                  <el-option :label="$t(`售中`)" value="售中"></el-option>-->
+<!--                  <el-option :label="$t(`售后`)" value="售后"></el-option>-->
+<!--                  <el-option-->
+<!--                      :label="$t(`历史售后`)"-->
+<!--                      :value="$t(`历史售后`)"-->
+<!--                  ></el-option>-->
+<!--                </el-select>-->
+<!--              </el-form-item>-->
+<!--            </el-col>-->
+<!--            <el-col :span="24" v-if="form.servicetype == '售中' || form.servicetype == '售后'">-->
+<!--              <el-form-item :label="$t(`订单号`)+':'" prop="sonum" >-->
+<!--                <selectOrder-->
+<!--                    :id="form.sys_enterpriseid"-->
+<!--                    ref="order"-->
+<!--                    @selectRow="orderChange"-->
+<!--                >-->
+<!--                  <el-input-->
+<!--                      readonly-->
+<!--                      :disabled="!form.sys_enterpriseid"-->
+<!--                      type="text"-->
+<!--                      slot="input"-->
+<!--                      size="mini"-->
+<!--                      @focus="-->
+<!--                      $refs.order.listData(), ($refs.order.visible = true)-->
+<!--                    "-->
+<!--                      v-model="form.sonum"-->
+<!--                  ></el-input>-->
+<!--                </selectOrder>-->
+<!--              </el-form-item>-->
+<!--            </el-col>-->
             <el-col :span="24">
             <el-col :span="24">
               <el-form-item :label="$t('省市县')" prop="province">
               <el-form-item :label="$t('省市县')" prop="province">
                 <el-cascader :placeholder="$t('请选择')"
                 <el-cascader :placeholder="$t('请选择')"
@@ -392,7 +392,7 @@ export default {
         this.form.county = this.form.province[2]
         this.form.county = this.form.province[2]
         this.form.province = this.form.province[0]
         this.form.province = this.form.province[0]
         const res = await this.$api.requested({
         const res = await this.$api.requested({
-          id: "20230208140003",
+          id: "2026020514064602",
           content: this.form,
           content: this.form,
         });
         });
         this.tool.showMessage(res, () => {
         this.tool.showMessage(res, () => {

+ 145 - 0
src/HDrpManagement/serveWorkBill/modules/Materials/index.vue

@@ -0,0 +1,145 @@
+
+<template>
+  <div>
+     <div style="display:flex;align-items:center">
+      <el-input
+          :placeholder="$t('请输入搜索内容')"
+          suffix-icon="el-icon-search"
+          v-model="params.content.where.condition"
+          style="width:200px"
+          size="mini"
+          class="input-with-select inline-16"
+          @keyup.native.enter="listData(params.content.pageNumber = 1)"
+          @clear="listData(params.content.pageNumber = 1)"
+          clearable>
+      </el-input>
+    </div>
+    <div style="margin-top: 15px">
+      <tableDetail :layout="tablecols" :data="list" :opwidth="200" :custom="true" fixed-name="operation" height="calc(100vh - 460px)">
+        <template v-slot:customcol="scope">
+          <div v-if="scope.column.columnname === 'nominalpressure'">
+            {{tool.nominalPressureSet(scope.column.data[scope.column.columnname])}}
+          </div>
+          <div v-else-if="scope.column.columnname === 'problem_description'">
+            <el-input v-if="nowRow == scope.column.data.rowindex" v-model="scope.column.data[scope.column.columnname]" :placeholder="$t(`请输入内容`)" size="mini"></el-input>
+            <div v-else>{{scope.column.data[scope.column.columnname] || '--'}}</div>
+          </div>
+          <div v-else-if="scope.column.columnname === 'processing'">
+            <el-input v-if="nowRow == scope.column.data.rowindex" v-model="scope.column.data[scope.column.columnname]" :placeholder="$t(`请输入内容`)" size="mini"></el-input>
+            <div v-else>{{scope.column.data[scope.column.columnname] || '--'}}</div>
+          </div>
+          <div v-else-if="scope.column.columnname === 'result'">
+            <el-input v-if="nowRow == scope.column.data.rowindex" v-model="scope.column.data[scope.column.columnname]" :placeholder="$t(`请输入内容`)" size="mini"></el-input>
+            <div v-else>{{scope.column.data[scope.column.columnname] || '--'}}</div>
+          </div>
+          <div v-else-if="scope.column.columnname === 'reason'">
+            <el-input v-if="nowRow == scope.column.data.rowindex" v-model="scope.column.data[scope.column.columnname]" :placeholder="$t(`请输入内容`)" size="mini"></el-input>
+            <div v-else>{{scope.column.data[scope.column.columnname] || '--'}}</div>
+          </div>
+          <div v-else>{{scope.column.data[scope.column.columnname]||scope.column.columnname === 'operation' ? scope.column.data[scope.column.columnname] : '--'}}</div>
+        </template>
+        <template v-slot:opreation="scope">
+          <el-button type="text" size="mini" @click="saveClick(scope.data)" :disabled="data.status != '进行中'" v-if="isEdit && scope.data.rowindex == nowRow">{{$t(`保存`)}}</el-button>
+          <el-button type="text" size="mini" @click="editClick(scope.data)" :disabled="data.status != '进行中'" v-else>{{$t(`编辑`)}}</el-button>
+        </template>
+      </tableDetail>
+      <div class="container normal-panel" style="text-align:right;margin-bottom: -10px!important;">
+        <el-pagination
+            background
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[20, 50, 100, 200]"
+            :page-size="50"
+            layout="total,sizes, prev, pager, next, jumper"
+            :total="total">
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ["data"],
+  data() {
+    return {
+      options: [],
+      siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid,
+      params:{
+        "id": 2026012813264502,
+        "content": {
+          "sa_workorderid": this.$route.query.id,
+          "pageNumber": 1,
+          "pageSize": 50,
+          "where": {
+            "condition": ""
+          }
+        },
+      },
+      list:[],
+      tablecols:[],
+      total:0,
+      currentPage:0,
+      nowRow:-1,
+      isEdit:false
+    };
+  },
+  methods: {
+    async listData(){
+      const res = await this.$api.requested(this.params)
+      this.list = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    editClick(data){
+      this.isEdit = true
+      this.nowRow = data.rowindex
+    },
+    async saveClick(data){
+      const res = await this.$api.requested({
+        id: "20230215201903",
+        content: {
+          "sa_workorder_nodeid": data.sa_workorder_nodeid,
+          "sa_workorderid": this.data.sa_workorderid,
+          "iteminfos":[{
+            "sa_workorder_node_itemsid":data.sa_workorder_node_itemsid,
+            "problem_description":data.problem_description,
+            "processing":data.processing,
+            "result":data.result,
+            "reason":data.reason,
+            "qty":data.qty,
+            "itemid":data.itemid
+          }]
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.isEdit = false
+        this.nowRow = -1
+      })
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
+  },
+  mounted() {
+    this.listData(this.params.content.pageNumber = 1)
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name).workMaterialsTable.tablecols
+  },
+};
+</script>
+<style scoped>
+/* 强制所有单元格换行 */
+/deep/ .el-table .cell {
+  white-space: normal !important;
+}
+</style>

+ 33 - 7
src/HDrpManagement/serveWorkBill/modules/items/index.vue

@@ -5,12 +5,12 @@
       <el-input
       <el-input
           :placeholder="$t('请输入搜索内容')"
           :placeholder="$t('请输入搜索内容')"
           suffix-icon="el-icon-search"
           suffix-icon="el-icon-search"
-          v-model="params.content.where.condition"
+          v-model="param.content.where.condition"
           style="width:200px"
           style="width:200px"
           size="mini"
           size="mini"
           class="input-with-select inline-16"
           class="input-with-select inline-16"
-          @keyup.native.enter="listData(params.content.pageNumber = 1)"
-          @clear="listData(params.content.pageNumber = 1)"
+          @keyup.native.enter="listData(param.content.pageNumber = 1)"
+          @clear="listData(param.content.pageNumber = 1)"
           clearable>
           clearable>
       </el-input>
       </el-input>
     </div>
     </div>
@@ -43,6 +43,18 @@
           <el-button type="text" size="mini" @click="editClick(scope.data)" :disabled="data.status != '进行中'" v-else>{{$t(`编辑`)}}</el-button>
           <el-button type="text" size="mini" @click="editClick(scope.data)" :disabled="data.status != '进行中'" v-else>{{$t(`编辑`)}}</el-button>
         </template>
         </template>
       </tableDetail>
       </tableDetail>
+      <div class="container normal-panel" style="text-align:right;margin-bottom: -10px!important;" >
+        <el-pagination
+            background
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[20, 50, 100, 200]"
+            :page-size="50"
+            layout="total,sizes, prev, pager, next, jumper"
+            :total="total">
+        </el-pagination>
+      </div>
     </div>
     </div>
   </div>
   </div>
 </template>
 </template>
@@ -54,7 +66,7 @@ export default {
     return {
     return {
       options: [],
       options: [],
       siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid,
       siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid,
-      params:{
+      param:{
         "id": 2026012813264502,
         "id": 2026012813264502,
         "content": {
         "content": {
           "sa_workorderid": this.$route.query.id,
           "sa_workorderid": this.$route.query.id,
@@ -67,14 +79,18 @@ export default {
       },
       },
       list:[],
       list:[],
       tablecols:[],
       tablecols:[],
+      total:0,
+      currentPage:0,
       nowRow:-1,
       nowRow:-1,
       isEdit:false
       isEdit:false
     };
     };
   },
   },
   methods: {
   methods: {
     async listData(){
     async listData(){
-      const res = await this.$api.requested(this.params)
+      const res = await this.$api.requested(this.param)
       this.list = res.data
       this.list = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
     },
     },
     editClick(data){
     editClick(data){
       this.isEdit = true
       this.isEdit = true
@@ -101,10 +117,20 @@ export default {
         this.isEdit = false
         this.isEdit = false
         this.nowRow = -1
         this.nowRow = -1
       })
       })
-    }
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
   },
   },
   mounted() {
   mounted() {
-    this.listData(this.params.content.pageNumber = 1)
+    this.listData(this.para.content.pageNumber = 1)
   },
   },
   created() {
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).serviceProductTable.tablecols
     this.tablecols = this.tool.tabelCol(this.$route.name).serviceProductTable.tablecols

+ 3 - 2
src/HDrpManagement/serveWorkBill/modules/serviceWorkOrder/index.vue

@@ -15,7 +15,7 @@
         </taskDetail>
         </taskDetail>
       </el-tab-pane>
       </el-tab-pane>
       <el-tab-pane label="工单物料" name="工单物料">
       <el-tab-pane label="工单物料" name="工单物料">
-        <Items :data="data"></Items>
+        <materials :data="data"></materials>
       </el-tab-pane>
       </el-tab-pane>
       <el-tab-pane label="服务确认单" name="服务确认单">
       <el-tab-pane label="服务确认单" name="服务确认单">
         <checkBill ref="checkBillRef">
         <checkBill ref="checkBillRef">
@@ -103,10 +103,11 @@ import Items from "../items/index";
 import checkBill from "../checkBill/index";
 import checkBill from "../checkBill/index";
 import teamList from "../teamList/index";
 import teamList from "../teamList/index";
 import selectTeam from "../../components/teamSelect";
 import selectTeam from "../../components/teamSelect";
+import materials from '../Materials/index'
 export default {
 export default {
   name: "index",
   name: "index",
   props:['data','detailInfo','nodes'],
   props:['data','detailInfo','nodes'],
-  components:{detailInfo,taskDetail,taskListDetail,taskListEdit,Items,checkBill,teamList,selectTeam},
+  components:{detailInfo,taskDetail,taskListDetail,taskListEdit,Items,checkBill,teamList,selectTeam,materials},
   data(){
   data(){
     return {
     return {
       activeName:'服务商品',
       activeName:'服务商品',