qymljy 3 месяцев назад
Родитель
Сommit
ed92be0867

+ 10 - 98
src/HDrpManagement/serveWorkBill/modules/detail.vue

@@ -9,6 +9,7 @@
       turnPageId="20221031141102"
       idname="sa_workorderid"
       ownertable="sa_workorder"
+      tabName="tab1"
       tags=""
       :tabs="['服务申请','服务工单','服务改善']"
       @pageChange="pageChange"
@@ -16,7 +17,7 @@
     >
       <div slot="tags"></div>
       <div slot="customOperation">
-        <!-- <customBtn
+         <customBtn
           btnName="接单"
           message="确认接单当前服务工单吗?"
           idName="20230210101103"
@@ -36,7 +37,7 @@
           class="inline-16"
           v-if="mainData.status == '待开始' && tool.checkAuth($route.name,'start')"
 
-        /> -->
+        />
         <customBtn
           btnName="暂停"
           message="确认暂停当前服务工单吗?"
@@ -61,7 +62,7 @@
             mainData.status == '暂停' && tool.checkAuth($route.name, 'used')
           "
         />
-        <!-- <customBtn
+         <customBtn
           btnName="完结"
           message="确认完结当前服务工单吗?"
           idName="20230209144903"
@@ -71,7 +72,7 @@
           class="inline-16"
           v-if="mainData.status != '新建' && tool.checkAuth($route.name,'complete')"
 
-        /> -->
+        />
         <customBtn
           btnName="作废"
           message="确认作废当前服务工单吗?"
@@ -89,97 +90,8 @@
 
       </div>
       <div slot="slot1">
-        <serviceWorkOrder ref="serviceWorkOrderRef" :data="mainData"></serviceWorkOrder>
+        <serviceWorkOrder ref="serviceWorkOrderRef" :data="mainData" :detailInfo="detailInfo" :nodes="nodes"></serviceWorkOrder>
       </div>
-<!--      <div slot="slot0" v-if="mainData.actiontype == '工序模板'">-->
-<!--        <taskDetail :data="nodes">-->
-<!--          <template v-slot:detail="scope">-->
-<!--            <taskListDetail-->
-<!--              class="inline-16"-->
-<!--              :data="scope.data"-->
-<!--            ></taskListDetail>-->
-<!--          </template>-->
-<!--          &lt;!&ndash; <template v-slot:edit="scope">-->
-<!--            <taskListEdit class="inline-16" :data="scope.data"/>-->
-<!--          </template> &ndash;&gt;-->
-<!--        </taskDetail>-->
-<!--      </div>-->
-<!--      <div slot="slot1" v-if="mainData.actiontype == '工序模板'">-->
-<!--        <checkBill ref="checkBillRef">-->
-<!--          <template v-slot:download="scope">-->
-<!--            <el-button-->
-<!--              v-if="tool.checkAuth($route.name, 'checkBillDetail')"-->
-<!--              type="text"-->
-<!--              size="mini"-->
-<!--              @click="downLoadBill(scope.data)"-->
-<!--              >{{ $t("单 据 下 载") }}</el-button-->
-<!--            >-->
-<!--          </template>-->
-<!--        </checkBill>-->
-<!--      </div>-->
-<!--      <div slot="slot2" v-if="mainData.actiontype == '工序模板'">-->
-<!--        <teamList-->
-<!--          v-if="tool.checkAuth($route.name, 'teamList')"-->
-<!--          ref="teamList"-->
-<!--          :data="mainData.team"-->
-<!--        >-->
-<!--          <selectTeam ref="team" @teamChange="teamChange" slot="add">-->
-<!--            <el-button-->
-<!--              v-if="tool.checkAuth($route.name, 'teamHandle') && mainData.status !== '已完成'"-->
-<!--              class="button-new-tag"-->
-<!--              size="small"-->
-<!--              type="primary"-->
-<!--              @click="$refs.team.dialogFormVisible = true"-->
-<!--              >{{ $t("添 加") }}</el-button-->
-<!--            >-->
-<!--          </selectTeam>-->
-<!--        </teamList>-->
-<!--      </div>-->
-<!--      <div slot="slot3" v-if="mainData.actiontype == '工序模板'">-->
-<!--        <Items :data="mainData"></Items>-->
-<!--      </div>-->
-<!--      <div slot="slot4" v-if="mainData.actiontype == '工序模板'">-->
-<!--        <detailInfo :more="true" :data="detailInfo"></detailInfo>-->
-<!--      </div>-->
-
-<!--      <div slot="slot0" v-if="mainData.actiontype != '工序模板'">-->
-<!--        <Items :data="mainData"></Items>-->
-<!--      </div>-->
-<!--      <div slot="slot1" v-if="mainData.actiontype != '工序模板'">-->
-<!--        <checkBill>-->
-<!--          <template v-slot:download="scope">-->
-<!--            <el-button-->
-<!--              v-if="tool.checkAuth($route.name, 'checkBillDetail')"-->
-<!--              type="text"-->
-<!--              size="mini"-->
-<!--              @click="downLoadBill(scope.data)"-->
-<!--              >{{ $t("单 据 下 载") }}</el-button-->
-<!--            >-->
-<!--          </template>-->
-<!--        </checkBill>-->
-<!--      </div>-->
-<!--      <div slot="slot2" v-if="mainData.actiontype != '工序模板'">-->
-<!--        <teamList-->
-<!--          v-if="tool.checkAuth($route.name, 'teamList') "-->
-<!--          ref="teamList"-->
-<!--          :data="mainData.team"-->
-<!--          :status="mainData.status"-->
-<!--        >-->
-<!--          <selectTeam ref="team" @teamChange="teamChange" slot="add">-->
-<!--            <el-button-->
-<!--              v-if="tool.checkAuth($route.name, 'teamHandle') && mainData.status !== '已完成'"-->
-<!--              class="button-new-tag"-->
-<!--              size="small"-->
-<!--              type="primary"-->
-<!--              @click="$refs.team.dialogFormVisible = true"-->
-<!--              >{{ $t("添 加") }}</el-button-->
-<!--            >-->
-<!--          </selectTeam>-->
-<!--        </teamList>-->
-<!--      </div>-->
-<!--      <div slot="slot3" v-if="mainData.actiontype != '工序模板'">-->
-<!--        <detailInfo :more="true" :data="detailInfo"></detailInfo>-->
-<!--      </div>-->
     </basicDetails>
   </div>
 </template>
@@ -239,7 +151,7 @@ export default {
       this.changeDataStructure();
 
       this.nodes = this.createTreeData(res.data.nodes);
-      this.$refs.serviceWorkOrderRef.name = this.mainData.actiontype == '工序模板'?'工序详情':'服务商品'
+      this.mainData.actiontype == '工序模板'?this.$refs.serviceWorkOrderRef.activeName = '工序详情' : this.$refs.serviceWorkOrderRef.activeName = '服务商品'
       console.log(this.nodes);
     },
     downLoadBill(data) {
@@ -436,9 +348,9 @@ export default {
                 return style
               }
             },
-            { label: "确认客诉异常描述是否属实", value: this.mainData.isfact},
-            { label: "是否为我司出货产品",value: this.mainData.isouritem},
-            { label: "是否在保质期内", value: this.mainData.inqualityguaranteeperiod},
+            { label: "确认客诉异常描述是否属实", value: this.mainData.isfact?'是':'否'},
+            { label: "是否为我司出货产品",value: this.mainData.isouritem?'是':'否'},
+            { label: "是否在保质期内", value: this.mainData.inqualityguaranteeperiod?'是':'否'},
             { label:'备注',  value: this.mainData.remarks},
           ],
         },

+ 139 - 13
src/HDrpManagement/serveWorkBill/modules/serviceWorkOrder/index.vue

@@ -1,29 +1,155 @@
 <template>
   <div>
-    <el-tabs type="border-card" v-if="data.actiontype == '工序模板'">
-      <el-tab-pane label="工序详情" name="工序详情">工序详情</el-tab-pane>
-      <el-tab-pane label="工单物料" name="工单物料">工单物料</el-tab-pane>
-      <el-tab-pane label="服务确认单" name="服务确认单">服务确认单</el-tab-pane>
-      <el-tab-pane label="服务团队" name="服务团队">服务团队</el-tab-pane>
-      <el-tab-pane label="工单信息" name="工单信息">工单信息</el-tab-pane>
+    <el-tabs type="border-card" v-model="activeName" v-if="data.actiontype == '工序模板'">
+      <el-tab-pane label="工序详情" name="工序详情">
+        <taskDetail :data="nodes">
+          <template v-slot:detail="scope">
+            <taskListDetail
+                class="inline-16"
+                :data="scope.data"
+            ></taskListDetail>
+          </template>
+          <!-- <template v-slot:edit="scope">
+            <taskListEdit class="inline-16" :data="scope.data"/>
+          </template> -->
+        </taskDetail>
+      </el-tab-pane>
+      <el-tab-pane label="工单物料" name="工单物料">
+        <Items :data="data"></Items>
+      </el-tab-pane>
+      <el-tab-pane label="服务确认单" name="服务确认单">
+        <checkBill ref="checkBillRef">
+          <template v-slot:download="scope">
+            <el-button
+                v-if="tool.checkAuth($route.name, 'checkBillDetail')"
+                type="text"
+                size="mini"
+                @click="downLoadBill(scope.data)"
+            >{{ $t("单 据 下 载") }}</el-button
+            >
+          </template>
+        </checkBill>
+      </el-tab-pane>
+      <el-tab-pane label="服务团队" name="服务团队">
+        <teamList
+            v-if="tool.checkAuth($route.name, 'teamList')"
+            ref="teamList"
+            :data="data.team"
+        >
+          <selectTeam ref="team" @teamChange="teamChange" slot="add">
+            <el-button
+                v-if="tool.checkAuth($route.name, 'teamHandle') && data.status !== '已完成'"
+                class="button-new-tag"
+                size="small"
+                type="primary"
+                @click="$refs.team.dialogFormVisible = true"
+            >{{ $t("添 加") }}</el-button
+            >
+          </selectTeam>
+        </teamList>
+      </el-tab-pane>
+      <el-tab-pane label="工单信息" name="工单信息">
+        <detailInfo :more="true"  :data="detailInfo"></detailInfo>
+      </el-tab-pane>
     </el-tabs>
-    <el-tabs type="border-card" v-else>
-      <el-tab-pane label="服务商品" name="服务商品">服务商品</el-tab-pane>
-      <el-tab-pane label="服务确认单" name="服务确认单">服务确认单</el-tab-pane>
-      <el-tab-pane label="服务团队" name="服务团队">服务团队</el-tab-pane>
-      <el-tab-pane label="工单信息" name="工单信息">工单信息</el-tab-pane>
+    <el-tabs type="border-card" v-model="activeName" v-else>
+      <el-tab-pane label="服务商品" name="服务商品">
+        <Items :data="data"></Items>
+      </el-tab-pane>
+      <el-tab-pane label="服务确认单" name="服务确认单">
+        <checkBill ref="checkBillRef">
+          <template v-slot:download="scope">
+            <el-button
+                v-if="tool.checkAuth($route.name, 'checkBillDetail')"
+                type="text"
+                size="mini"
+                @click="downLoadBill(scope.data)"
+            >{{ $t("单 据 下 载") }}</el-button
+            >
+          </template>
+        </checkBill>
+      </el-tab-pane>
+      <el-tab-pane label="服务团队" name="服务团队">
+        <teamList
+            v-if="tool.checkAuth($route.name, 'teamList')"
+            ref="teamList"
+            :data="data.team"
+        >
+          <selectTeam ref="team" @teamChange="teamChange" slot="add">
+            <el-button
+                v-if="tool.checkAuth($route.name, 'teamHandle') && data.status !== '已完成'"
+                class="button-new-tag"
+                size="small"
+                type="primary"
+                @click="$refs.team.dialogFormVisible = true"
+            >{{ $t("添 加") }}</el-button
+            >
+          </selectTeam>
+        </teamList>
+      </el-tab-pane>
+      <el-tab-pane label="工单信息" name="工单信息">
+        <detailInfo :more="true"  :data="detailInfo"></detailInfo>
+      </el-tab-pane>
     </el-tabs>
   </div>
 </template>
 
 <script>
+import detailInfo from '@/components/detailInfo/index'
+import taskDetail from "../taskDetail/index";
+import taskListDetail from "../taskDetail/taskListDetail";
+import taskListEdit from "../taskDetail/taskListEdit";
+import Items from "../items/index";
+import checkBill from "../checkBill/index";
+import teamList from "../teamList/index";
+import selectTeam from "../../components/teamSelect";
 export default {
   name: "index",
-  props:['data'],
+  props:['data','detailInfo','nodes'],
+  components:{detailInfo,taskDetail,taskListDetail,taskListEdit,Items,checkBill,teamList,selectTeam},
   data(){
     return {
-      name:'工序详情'
+      activeName:'服务商品',
+      active_accoun:JSON.parse(sessionStorage.getItem('active_account')),
+      folderid:JSON.parse(sessionStorage.getItem('folderid'))
     }
+  },
+  methods:{
+    downLoadBill(data) {
+      let result = data.attinfos.filter(
+          (item) => item.usetype == "comfirmbill"
+      );
+      let http = location.href.substring(0,5) == 'https'?'https://oms.idcgroup.com.cn:8079/yosweb/#/printTable?':'http://61.164.207.46:8000/yosweb/#/printTable?'
+      let token = 'token=' + this.active_accoun.token
+      let parentid = '&parentid=' + this.folderid.appfolderid
+      let ownerid = '&ownerid=' + data.sa_workorder_confirmationid
+      let action = '&action=1'
+      let urlNew = http + token + parentid + ownerid + action
+      if (result.length == 0)
+        window.open(urlNew);
+      window.open(result[result.length - 1].url, "_self");
+      this.$refs.checkBillRef.listData()
+    },
+    async teamChange(data) {
+      let result = data.map((item) => {
+        return item.userid;
+      });
+      const res = await this.$api.requested({
+        id: 20220930103603,
+        content: {
+          ownertable: "sa_workorder",
+          ownerid: this.$route.query.id,
+          justuserids: false,
+          userids: result,
+        },
+      });
+      this.tool.showMessage(res, () => {
+        this.$refs.team.dialogFormVisible = false;
+        this.$refs.teamList.listData();
+      });
+    },
+  },
+  mounted() {
   }
 
 }

+ 2 - 2
src/components/normal-basic-layout/details/index.vue

@@ -89,7 +89,7 @@
         <el-col style="flex:1 0 auto;" :span="activeApp.isdatateam?18:activeApp.isdatafollowup?18:24">
           <slot name="customBefore"></slot>
           <tabTemp ref="tabRef" :disabled="disabled" :status="status" :tabs="tabs" :editData="editData" :idname="idname" :attachmentDisabled="attachmentDisabled" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)"
-                   @onTabClick="onTabClick" @newFollow="newFollow" @hrMain="hrMain" :isFollow="activeApp.isdatafollowup">
+                   @onTabClick="onTabClick" @newFollow="newFollow" @hrMain="hrMain" :isFollow="activeApp.isdatafollowup" :tabName="tabName">
             <div :slot="'slot' + index" v-for="(tab,index) in tabs" :key="tab.index">
               <slot :name="'slot' + index"></slot>
             </div>
@@ -140,7 +140,7 @@ import {mapGetters} from 'vuex'
 export default {
   props:['titleText','mainAreaData','turnPageId','delApiId','idname','ownertable','formPath','oldFormPath','editData','tags','tabs','statusCheck','pageChange','justsaler',
     'mainData','status','typeTask','isGroup','isBatch','modelName','isDelete','column','attachmentDisabled','disabled','isGoDetail','detailPath','nowDetailPath','detailId',
-  'isAdmin','btnNameReport','delHide'],
+  'isAdmin','btnNameReport','delHide','tabName'],
   data () {
     return {
       drawer:false,

+ 2 - 2
src/components/normal-basic-layout/details/modules/tabs/tab.vue

@@ -35,7 +35,7 @@ import datalog from '../datalog/index.vue'
 import followTable from '../followTable/index'
 
 export default {
-  props:['tabs','editData','ownertable','idname','status','attachmentDisabled','disabled','isFollow'],
+  props:['tabs','editData','ownertable','idname','status','attachmentDisabled','disabled','isFollow','tabName'],
   components:{
     attachmentList,
     upload,
@@ -97,7 +97,7 @@ export default {
       if (this.tabs.length == 0 && this.$route.path !== '/contractDetail') {
         this.activeName = 'file'
       } else {
-        this.activeName = 'tab0'
+        this.activeName = this.tabName?this.tabName:'tab0'
       }
     }, 100);
     this.isSalesman()