123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422 |
- <template>
- <div>
- <basicDetails
- ref="details"
- :titleText="mainData.billno"
- :oldFormPath="{edit:'HDrpManagement/serveWorkBill/components'}"
- :editData="mainData"
- :mainAreaData="mainAreaData"
- turnPageId="20221031141102"
- idname="sa_workorderid"
- ownertable="sa_workorder"
- tags=""
- :tabs="mainData.actiontype == '工序模板' ? ['工序详情','确认单','服务团队','工单物料','详细信息'] : ['服务商品','确认单','服务团队','详细信息']"
- @pageChange="pageChange"
- @onEditSuccess="queryMainData($route.query.id)">
- <div slot="tags">
- </div>
- <div slot="customOperation" >
- <!-- <customBtn
- btnName="接单"
- message="确认接单当前服务工单吗?"
- idName="20230210101103"
- keyName="sa_workorderid"
- :id="$route.query.id"
- @onSuccess="queryMainData"
- class="inline-16"
- v-if="mainData.status == '新建' && tool.checkAuth($route.name,'join')"
- />
- <customBtn
- btnName="开始"
- message="确认开始当前服务工单吗?"
- idName="20230209144503"
- keyName="sa_workorderid"
- :id="$route.query.id"
- @onSuccess="queryMainData"
- class="inline-16"
- v-if="mainData.status == '待开始' && tool.checkAuth($route.name,'start')"
- /> -->
- <customBtn
- btnName="暂停"
- message="确认暂停当前服务工单吗?"
- idName="20230209144603"
- keyName="sa_workorderid"
- :id="$route.query.id"
- @onSuccess="queryMainData"
- class="inline-16"
- v-if="mainData.status == '进行中' && tool.checkAuth($route.name,'stop')"
- />
- <customBtn
- btnName="启用"
- message="确认启用当前服务工单吗?"
- idName="20230209144703"
- keyName="sa_workorderid"
- :id="$route.query.id"
- @onSuccess="queryMainData"
- class="inline-16"
- v-if="mainData.status == '暂停' && tool.checkAuth($route.name,'used')"
- />
- <!-- <customBtn
- btnName="完结"
- message="确认完结当前服务工单吗?"
- idName="20230209144903"
- keyName="sa_workorderid"
- :id="$route.query.id"
- @onSuccess="queryMainData"
- class="inline-16"
- v-if="mainData.status != '新建' && tool.checkAuth($route.name,'complete')"
- /> -->
- <customBtn
- btnName="作废"
- message="确认作废当前服务工单吗?"
- idName="20230209144803"
- keyName="sa_workorderid"
- :id="$route.query.id"
- @onSuccess="queryMainData"
- class="inline-16"
- v-if="mainData.status != '完结' && tool.checkAuth($route.name,'delete')"
- />
- </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>
- <!-- <template v-slot:edit="scope">
- <taskListEdit class="inline-16" :data="scope.data"/>
- </template> -->
- </taskDetail>
- </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)">单 据 下 载</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')" class="button-new-tag" size="small" type="primary" @click="$refs.team.dialogFormVisible=true">添 加</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)">单 据 下 载</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')" class="button-new-tag" size="small" type="primary" @click="$refs.team.dialogFormVisible=true">添 加</el-button>
- </selectTeam>
- </teamList>
- </div>
- <div slot="slot3" v-if="mainData.actiontype != '工序模板'">
- <detailInfo :more="true" :data="detailInfo"></detailInfo>
- </div>
-
- </basicDetails>
- </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 checkBill from './checkBill/index'
- import teamList from './teamList/index'
- import Items from './items/index'
- import selectTeam from '../components/teamSelect'
- import { log } from '@antv/g2plot/lib/utils'
- export default {
- name: "detail",
- data() {
- return {
- mainData:'',
- mainAreaData:{},
- detailInfo:'',
- nodes:[]
- }
- },
- components:{
- detailInfo,
- taskDetail,
- taskListDetail,
- taskListEdit,
- checkBill,
- teamList,
- Items,
- selectTeam
- },
- methods:{
- async queryMainData(id) {
- const res = await this.$api.requested({
- "id":20230208140103,
- "content": {
- "sa_workorderid": this.$route.query.id
- }
- })
- this.mainData = res.data
- this.changeDataStructure()
- console.log(res.data);
-
- this.nodes = this.createTreeData(res.data.nodes)
- console.log(this.nodes);
-
- },
- downLoadBill (data) {
- let result = data.attinfos.filter(item => item.usetype == "comfirmbill")
- if(result.length == 0) return this.$message({
- type:'warning',
- message:'暂无单据信息'
- })
- window.open(result[0].url,'_self')
- },
- 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()
- })
- },
- changeDataStructure() {
- let that = this
- this.mainAreaData = [
- {
- label:'单号',
- value:this.mainData.billno
- },
- {
- label:'服务申请单号',
- value:this.mainData.servicebillno
- },
- {
- label:'工单类型',
- value:this.mainData.type
- },
- {
- label:'负责人',
- value:this.mainData.projectleader
- },
- {
- label:'状态',
- value:this.mainData.status,
- style:function () {
- let style = {}
- switch (that.mainData.status) {
- case '进行中':
- style = {color:'#52c41a'}
- break;
- case '待开始':
- style = {color:'#3874f6'}
- break;
- case '暂停':
- style = {color:'#333333'}
- break;
- /* case '提交':
- style = {color:'#3874f6'}
- break; */
- case '待接单':
- style = {color:'#fa8c16'}
- break;
- case '已完成':
- style = {color:'#fa8c16'}
- break;
- default:
- break;
- }
- return style
-
- }
- },
- {
- label:'经销商编号',
- value:this.mainData.agentnum
- },
- {
- label:'经销商',
- value:this.mainData.enterprisename
- },
- {
- label:'省市县',
- value:this.mainData.province + this.mainData.city + this.mainData.county
- },
- {
- label:'业务员',
- value:this.mainData.saler_name
- },
- {
- label:'业务员电话',
- value:this.mainData.salerphonenumber
- },
- {
- label:'地址',
- value:this.mainData.address
- },
- {
- label:'创建时间',
- value:this.mainData.createdate
- },
- {
- label:'结束时间',
- value:this.mainData.enddate
- },
- {
- label:'操作类型',
- value:this.mainData.actiontype
- }
- ]
- this.detailInfo = [
- {
- title:'基本信息',
- info: [
- {label:'单号',value:this.mainData.billno},
- {label:'申请单号',value:this.mainData.servicebillno},
- {
- label:'状态',
- value:this.mainData.status,
- style:function () {
- let style = {}
- switch (that.mainData.status) {
- case '进行中':
- style = {color:'#52c41a'}
- break;
- case '待开始':
- style = {color:'#3874f6'}
- break;
- case '暂停':
- style = {color:'#333333'}
- break;
- /* case '提交':
- style = {color:'#3874f6'}
- break; */
- case '待接单':
- style = {color:'#fa8c16'}
- break;
- case '已完成':
- style = {color:'#fa8c16'}
- break;
- default:
- break;
- }
- return style
- }
- },
- {label:'经销商编号',value:this.mainData.agentnum},
- {label:'经销商',value:this.mainData.enterprise},
- {label:'现场联系人',value:this.mainData.scenecontact},
- {label:'联系人电话',value:this.mainData.scenecontactphonenumber},
- {label:'工单负责人',value:this.mainData.projectleader},
- {label:'工单类型',value:this.mainData.type},
- {label:'工单模板',value:this.mainData.name},
- {label:'省市县',value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`},
- {label:'地址',value:this.mainData.address},
- {label:'创建人',value:this.mainData.createby},
- {label:'创建时间',value:this.mainData.createdate},
- ]
- },
- ]
- },
- createTreeData (array) {
- var that = this
- let arr = []
- function convertToElementTree(node) {
- // 新节点
- var elNode = {
- amount:node['amount'],
- attinfos:node['attinfos'],
- changeby: node["changeby"],
- changedate:node['changedate'],
- changeuserid:node['changeuserid'],
- confirm_value:node['confirm_value'],
- finishby:node['finishby'],
- parentid:node['parentid'],
- remarks:node['remarks'],
- sa_workorder_nodeid:node['sa_workorder_nodeid'],
- sa_workorderid:node['sa_workorderid'],
- sequence:node['sequence'],
- status:node['status'],
- textcontent:node['textcontent'],
- workname:node['workpresetjson'].workname,
- additem:node['workpresetjson'].additem,
- addperson:node['workpresetjson'].amountpay,
- confirm_options:node['workpresetjson'].confirm_options,
- confirm:node['workpresetjson'].confirm,
- contractupload:node['workpresetjson'].contractupload,
- fileupload:node['workpresetjson'].fileupload,
- itemtype:node['workpresetjson'].itemtype,
- remarks:node['workpresetjson'].remarks,
- required:node['workpresetjson'].required,
- textedit:node['workpresetjson'].textedit,
- children: [],
- }
-
- if (node.child && node.child.length > 0) {
- // 如果存在子节点
- for (var index = 0; index < node.child.length; index++) {
- // 遍历子节点, 把每个子节点看做一颗独立的树, 传入递归构造子树, 并把结果放回到新node的children中
- elNode.children.push(convertToElementTree(node.child[index]));
- }
- }
- return elNode;
- }
- array.forEach((element) => {
- arr.push(convertToElementTree(element))
- });
- return arr
- },
- // 监听切换数据,上一页,下一页
- pageChange (id,rowindex,tabIndex) {
- this.flag = false
- tabIndex = this.$route.query.tabIndex
- this.$router.replace({path:'/workorderDetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
- this.queryMainData(id)
- },
- onSuccess(){
- this.visible = false
- this.queryMainData(this.$route.query.id)
- this.$emit('onSuccess')
- }
- },
- mounted () {
- this.queryMainData(this.$route.query.id)
- },
- created() {
- }
- }
- </script>
- <style scoped>
- </style>
|