Sfoglia il codice sorgente

工单物料、团队信息tab

NULL1222 2 giorni fa
parent
commit
a1c208518e

+ 2 - 2
src/bgj/headquartersServiceMaterial/index.vue

@@ -267,7 +267,7 @@
                                 '[]' && scope.data.column.data.brand
                         "
                     >
-                        <span v-for="item in scope.data.column.data.brand">
+                        <span v-for="item in scope.data.column.data.brand" :key="item.sa_brand_bgjid">
                             <el-tag
                                 style="
                                     margin-right: 10px;
@@ -290,7 +290,7 @@
                     >
                         <span
                             v-for="item in scope.data.column.data.itemclass"
-                            :key="item.index"
+                            :key="item.sc_itemsaleclassid"
                         >
                             <el-tag
                                 style="

+ 1 - 0
src/bgj/serviceWorkItem/modules/detail.vue

@@ -25,6 +25,7 @@
                     @onSuccess="queryMainData"
                 ></Edit>
                 <el-button
+                    style="margin-right: 10px;"
                     type="danger"
                     @click="onDelete"
                     size="mini"

+ 10 - 2
src/bgj/workOrderManage/modules/detail.vue

@@ -52,7 +52,13 @@
         <base-info v-if="detailInfo" :detailInfo="detailInfo"></base-info>
       </div>
       <div slot="slot1">
-        <processInfo :data="mainData" ></processInfo>
+        <processInfo :data="mainData"></processInfo>
+      </div>
+      <div slot="slot2">
+        <material :data="mainData"></material>
+      </div>
+      <div slot="slot3">
+        <team :data="mainData"></team>
       </div>
     </basicDetails>
   </div>
@@ -62,6 +68,8 @@
 import BaseInfo from "@/bgj/headquartersServiceMaterial/modules/baseInfo";
 import processInfo from "./processInfo/index";
 import Del from "../components/del";
+import material from "./material";
+import team from "./team";
 export default {
   name: "detail",
   data() {
@@ -72,7 +80,7 @@ export default {
       btnLoading: false,
     };
   },
-  components: { BaseInfo, Del, processInfo },
+  components: { BaseInfo, Del, processInfo, material, team },
   methods: {
     async queryMainData() {
       const res = await this.$api.requested({

+ 139 - 0
src/bgj/workOrderManage/modules/material.vue

@@ -0,0 +1,139 @@
+
+<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="clearData"
+        clearable
+      >
+      </el-input>
+      <slot name="addProduct"></slot>
+    </div>
+    <div style="margin-top: 15px">
+      <tableLayout
+        :layout="tablecols"
+        :data="list"
+        :opwidth="200"
+        :custom="true"
+        :width="false"
+        :height="tableHieght"
+        fixedName="operation"
+      >
+        <template v-slot:customcol="scope">
+          <div v-if="scope.column.data.columnname === 'brand'">
+            <span
+              v-if="
+                JSON.stringify(scope.column.data.brand) !== '[]' &&
+                scope.column.data.brand
+              "
+            >
+              <span
+                v-for="item in scope.column.data.brand"
+                :key="item.sa_brand_bgjid"
+              >
+                <el-tag
+                  style="
+                    margin-right: 10px;
+                    margin-top: 5px;
+                    margin-bottom: 5px;
+                  "
+                  type="warning"
+                  >{{ $t(item.brandname) }}</el-tag
+                >
+              </span>
+            </span>
+            <span v-else>--</span>
+          </div>
+          <div v-else>
+            {{
+              scope.column.data[[scope.column.columnname]]
+                ? $t(scope.column.data[[scope.column.columnname]])
+                : "--"
+            }}
+          </div>
+        </template>
+      </tableLayout>
+    </div>
+    <div style="margin-top: 16px; text-align: right">
+      <el-pagination
+        background
+        small
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="params.content.pageNumber"
+        :page-size="params.content.pageSize"
+        layout="total, prev, pager, next, jumper"
+        :total="total"
+      >
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ["data"],
+  data() {
+    return {
+      tableHieght: "calc(100vh - 380px)",
+      tablecols: [],
+      list: [],
+      total: 0,
+      params: {
+        id: 2026052716201902,
+        version: 1,
+        content: {
+          sc_workorderid: "",
+          pageNumber: 1,
+          pageSize: 20,
+          where: {
+            condition: "",
+          },
+        },
+      },
+      options: [],
+    };
+  },
+  methods: {
+    async listData() {
+      this.params.content.sc_workorderid = this.$route.query.id;
+      const res = await this.$api.requested(this.params);
+      this.list = res.data;
+      this.total = res.total;
+      console.log(this.list);
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val;
+      this.listData();
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val;
+      this.listData();
+    },
+    clearData() {
+      this.listData();
+    },
+    queryClick() {
+      this.listData();
+    },
+  },
+  created() {
+    this.listData();
+    console.log(this.$route.name);
+    this.tablecols = this.tool.tabelCol(
+      this.$route.name
+    ).workOrderMaterialTable.tablecols;
+  },
+};
+</script>
+<style scoped>
+</style>

+ 166 - 0
src/bgj/workOrderManage/modules/team.vue

@@ -0,0 +1,166 @@
+
+<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="clearData"
+        clearable
+      >
+      </el-input>
+      <slot name="addProduct"></slot>
+    </div>
+    <div style="margin-top: 15px">
+      <el-table
+        :data="tableData"
+        stripe
+        border
+        size="small"
+        :height="tableHieght"
+      >
+        <el-table-column
+          :label="$t('姓名')"
+          prop="name"
+          show-overflow-tooltip
+          min-width="120"
+        >
+          <template slot-scope="scope">
+            {{ scope.row.name || "--" }}
+            <el-tag
+              v-if="scope.row.isLeader"
+              type="primary"
+              effect="dark"
+              style="margin-left: 10px"
+              size="small"
+            >
+              负责人
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column
+          :label="$t('联系电话')"
+          prop="phonenumber"
+          show-overflow-tooltip
+          min-width="140"
+        >
+          <template slot-scope="scope">
+            {{ scope.row.phonenumber || "--" }}
+          </template>
+        </el-table-column>
+        <el-table-column
+          :label="$t('职务')"
+          prop="position"
+          show-overflow-tooltip
+          min-width="120"
+        >
+          <template slot-scope="scope">
+            {{ scope.row.position || "--" }}
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <div style="margin-top: 16px; text-align: right">
+      <el-pagination
+        background
+        small
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="params.content.pageNumber"
+        :page-size="params.content.pageSize"
+        layout="total, prev, pager, next, jumper"
+        :total="total"
+      >
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ["data"],
+  data() {
+    return {
+      tableHieght: "calc(100vh - 380px)",
+      tableData: [],
+      list: [],
+      total: 0,
+      params: {
+        id: 20220930103501,
+        version: 1,
+        content: {
+          ownertable: "sc_workorder",
+          ownerid: "",
+          pageNumber: 1,
+          pageSize: 20,
+          where: {
+            condition: "",
+          },
+        },
+      },
+      options: [],
+    };
+  },
+  methods: {
+    async listData() {
+      this.params.content.ownerid = this.$route.query.id;
+      const res = await this.$api.requested(this.params);
+      if (res.data && res.data.length > 0) {
+        this.list = res.data;
+        this.buildTableData(res.data);
+      } else {
+        this.list = [];
+        this.tableData = [];
+      }
+    },
+    buildTableData(list) {
+      const result = [];
+      list.forEach((group) => {
+        const leader = (group.teamleader && group.teamleader[0]) || {};
+        const members = group.team || [];
+        result.push({
+          name: leader.name || group.teamname || "--",
+          phonenumber: leader.phonenumber || "--",
+          position: leader.position || "--",
+          isLeader: true,
+        });
+        members.forEach((member) => {
+          result.push({
+            name: member.name || "--",
+            phonenumber: member.phonenumber || "--",
+            position: member.position || "--",
+            isLeader: false,
+          });
+        });
+      });
+      this.tableData = result;
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val;
+      this.listData();
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val;
+      this.listData();
+    },
+    clearData() {
+      this.listData();
+    },
+    queryClick() {
+      this.listData();
+    },
+  },
+  created() {
+    this.listData();
+  },
+};
+</script>
+<style scoped>
+</style>