detail.vue 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="mainData.billno"
  6. :editData="mainData"
  7. :mainAreaData="mainAreaData"
  8. turnPageId="20221121201502"
  9. idname="sa_contractid"
  10. ownertable="sa_contract"
  11. :tabs="mainData.type === '项目' ? ['产品清单','合同条款','详细信息'] : mainData.type === '框架' ? ['产品明细折扣','产品类别折扣','业绩目标','详细信息'] : mainData.type === '居间' ? ['详细信息'] : ['工具清单','合同条款','详细信息']"
  12. :statusCheck="[{key:'status',value:'已提交'},{key:'status',value:'审核'},{key:'status',value:'已终止'}]"
  13. @pageChange="pageChange"
  14. @onEditSuccess="queryMainData($route.query.id)">
  15. <div slot="tags">
  16. </div>
  17. <div slot="customOperation" >
  18. <editBtn :modelList="modelList" v-if="tool.checkAuth($route.name,'update')" :disabled="mainData.status != '新建' || !isLeader" @onSuccess="queryMainData();$refs.billno && $refs.billno.listData()" :data="mainData" class="inline-16"/>
  19. <submit-check :disabled="!isLeader" ref="submit" :data="mainData" @onSuccess="queryMainData" />
  20. <reverseCheck @onSuccess="queryMainData()" :data="mainData" v-if="tool.checkAuth($route.name,'reverseCheck') && mainData.status != '新建' && mainData.status != '已终止'" />
  21. <contractOver v-if="tool.checkAuth($route.name,'contractOver') && mainData.status != '已终止' && mainData.status != '审核' && isLeader" :disabled="!isLeader" :id="mainData.sa_contractid" @onSuccess="queryMainData"/>
  22. <Del :idName="20221121202502" :id="mainData.sa_contractid" idKey="sa_contractids" class="inline-16" v-if="tool.checkAuth($route.name,'toVoid') && mainData.status == '新建' && isLeader"/>
  23. </div>
  24. <div slot="slot0" >
  25. <!--产品清单表-->
  26. <productBillno ref="billno" @priceChange="queryMainData" v-if="mainData.type == '项目'">
  27. <addProduct ref="addProduct" :data="mainData" v-if="tool.checkAuth($route.name,'productBillManage')" :disabled="mainData.status != '新建' || !isLeader" slot="addProduct" @onSuccess="$refs.billno.listData()"/>
  28. <template v-slot:edit="scope">
  29. <el-button
  30. v-if="tool.checkAuth($route.name,'productBillManage')"
  31. class="inline-16"
  32. :disabled="mainData.status != '新建' || !isLeader"
  33. type="text" size="mini" slot="edit"
  34. @click="$refs.billno.editIndex = scope.data.sa_contract_itemsid;$refs.billno.form = Object.assign({},$refs.billno.form,scope.data)"
  35. >编 辑</el-button>
  36. </template>
  37. <template v-slot:del="scope">
  38. <delete-btn v-if="tool.checkAuth($route.name,'productBillManage')" :nameId="20221123164502" :disabled="mainData.status != '新建' || !isLeader" nameKey="sa_contract_itemsids" :id="scope.data.sa_contract_itemsid" @deleteSuccess="$refs.billno.listData()"></delete-btn>
  39. </template>
  40. </productBillno>
  41. <!--产品明细折扣表-->
  42. <productDetailList ref="productDetailList" v-if="mainData.type == '框架'" @priceChange="queryMainData">
  43. <addProductDetail :disabled="mainData.status != '新建' || !isLeader" slot="addProduct" v-if="tool.checkAuth($route.name,'productDetailManage')" @onSuccess="$refs.productDetailList.listData()"/>
  44. <template v-slot:edit="scope">
  45. <el-button
  46. v-if="tool.checkAuth($route.name,'productDetailManage')"
  47. class="inline-16"
  48. :disabled="mainData.status != '新建' || !isLeader"
  49. type="text"
  50. size="mini"
  51. slot="edit"
  52. @click="$refs.productDetailList.editIndex = scope.data.sa_contract_itemsid;$refs.productDetailList.form = Object.assign({},$refs.productDetailList.form,scope.data)"
  53. >编 辑</el-button>
  54. </template>
  55. <template v-slot:del="scope">
  56. <delete-btn v-if="tool.checkAuth($route.name,'productDetailManage')" :nameId="20221123164502" :disabled="mainData.status != '新建' || !isLeader" nameKey="sa_contract_itemsids" :id="scope.data.sa_contract_itemsid" @deleteSuccess="$refs.productDetailList.listData()"></delete-btn>
  57. </template>
  58. </productDetailList>
  59. <!--工具清单-->
  60. <toolList ref="toolList" v-if="mainData.type == '工具借用'" @priceChange="queryMainData">
  61. <addTool v-if="tool.checkAuth($route.name,'toolListManage')" :disabled="mainData.status != '新建' || !isLeader" slot="addProduct" @onSuccess="$refs.toolList.listData()"/>
  62. <template v-slot:edit="scope">
  63. <el-button
  64. v-if="tool.checkAuth($route.name,'toolListManage')"
  65. class="inline-16"
  66. :disabled="mainData.status != '新建' || !isLeader"
  67. type="text"
  68. size="mini"
  69. slot="edit"
  70. @click="$refs.toolList.editIndex = scope.data.sa_contract_itemsid;$refs.toolList.form = Object.assign({},$refs.toolList.form,scope.data)"
  71. >编 辑</el-button>
  72. </template>
  73. <template v-slot:del="scope">
  74. <delete-btn v-if="tool.checkAuth($route.name,'toolListManage')" :nameId="20221123164502" :disabled="mainData.status != '新建' || !isLeader" nameKey="sa_contract_itemsids" :id="scope.data.sa_contract_itemsid" @deleteSuccess="$refs.toolList.listData()"></delete-btn>
  75. </template>
  76. </toolList>
  77. <BaseInfo v-if="mainData.type == '居间'" :detailInfo="detailInfo"/>
  78. </div>
  79. <div slot="slot1" >
  80. <!--产品类别折扣表-->
  81. <productClassList ref="classList" @priceChange="queryMainData" v-if="mainData.type == '框架'">
  82. <addClass v-if="tool.checkAuth($route.name,'productClassManage')" :disabled="mainData.status != '新建' || !isLeader" slot="addProduct" @onSuccess="$refs.classList.listData()"/>
  83. <template v-slot:edit="scope">
  84. <el-button
  85. v-if="tool.checkAuth($route.name,'productClassManage')"
  86. class="inline-16"
  87. :disabled="mainData.status != '新建' || !isLeader"
  88. type="text" size="mini" slot="edit"
  89. @click="$refs.classList.currentEdit = scope.data;$refs.classList.form = Object.assign({},$refs.classList.form,scope.data)"
  90. >编 辑</el-button>
  91. </template>
  92. <template v-slot:del="scope">
  93. <delete-btn v-if="tool.checkAuth($route.name,'productClassManage')" :nameId="20221124111202" :disabled="mainData.status != '新建' || !isLeader" nameKey="sa_contract_itemsaleclassids" :id="scope.data.sa_contract_itemsaleclassid" @deleteSuccess="$refs.classList.listData()"></delete-btn>
  94. </template>
  95. </productClassList>
  96. <!--合同条款-->
  97. <contractClause :disabled="mainData.status != '新建' || !isLeader" ref="Claus" v-if="mainData.type == '项目' || mainData.type == '工具借用'">
  98. <el-button
  99. v-if="tool.checkAuth($route.name,'contractClauseManage')"
  100. size="small"
  101. type="primary"
  102. slot="addProduct"
  103. class="inline-16"
  104. @click="$refs.Claus.list.unshift({content:'',sa_contract_clauseid:0}),$refs.Claus.editIndex=0,$refs.Claus.form.sa_contract_clauseid=0"
  105. :disabled="mainData.status != '新建' || !isLeader"
  106. >添 加</el-button>
  107. <template v-slot:edit="scope">
  108. <el-button
  109. v-if="tool.checkAuth($route.name,'contractClauseManage')"
  110. class="inline-16"
  111. :disabled="mainData.status != '新建' || scope.data.editable != 1 || !isLeader"
  112. type="text" size="mini" slot="edit"
  113. @click="$refs.Claus.currentEdit = scope.data;$refs.Claus.form = Object.assign({},$refs.Claus.form,scope.data)"
  114. >编 辑</el-button>
  115. </template>
  116. <template v-slot:del="scope">
  117. <delete-btn
  118. :nameId="20221128160302"
  119. nameKey="sa_contract_clauseids"
  120. :message="message"
  121. :id="scope.data.sa_contract_clauseid" @deleteSuccess="$refs.Claus.listData()"
  122. v-if="scope.data.sa_contract_clauseid !== 0"
  123. ></delete-btn>
  124. </template>
  125. </contractClause>
  126. </div>
  127. <div slot="slot2">
  128. <!--业绩目标-->
  129. <taskTarget ref="taskTarget" v-if="Object.keys(mainData).length > 0 && mainData.type == '框架'" :data="mainData">
  130. <template v-slot:addTarget="scope">
  131. <add-target :disabled="mainData.status != '新建' || !isLeader" v-if="tool.checkAuth($route.name,'taskTargetManage')" :data="mainData" @onSuccess="successYear"></add-target>
  132. </template>
  133. <template v-slot:edit="scope">
  134. <edit-target class="inline-16" :disabled="mainData.status != '新建' || !isLeader" v-if="tool.checkAuth($route.name,'taskTargetManage')" :data="scope.data" :salerId="mainData" @onSuccess="$refs.taskTarget.queryData()"/>
  135. </template>
  136. <template v-slot:delete="scope">
  137. <del-target @onSuccess="$refs.taskTarget.queryData()" class="inline-16" :disabled="mainData.status != '新建' || !isLeader" v-if="tool.checkAuth($route.name,'taskTargetManage')" :id="scope.data.sa_salestargetbillid"></del-target>
  138. </template>
  139. </taskTarget>
  140. <BaseInfo v-if="mainData.type !== '居间' && mainData.type !== '框架'" :detailInfo="detailInfo"/>
  141. </div>
  142. <div slot="slot3">
  143. <BaseInfo v-if="mainData.type !== '居间'" :detailInfo="detailInfo"/>
  144. </div>
  145. </basicDetails>
  146. </div>
  147. </template>
  148. <script>
  149. import Del from '../components/delete'
  150. import editBtn from '../components/editContract'
  151. import SubmitCheck from '../components/submitCheck'
  152. import productBillno from '../components/productList/productBillno'
  153. import productDetailList from '../components/productDetailList/productDetailList'
  154. import addProduct from '../components/productList/addProduct'
  155. import addProductDetail from '../components/productDetailList/addProduct'
  156. import addTool from '../components/toolList/addTool'
  157. import toolList from '../components/toolList/toolList'
  158. import addClass from '../components/productClassList/addProduct'
  159. import productClassList from '../components/productClassList/productClassList'
  160. import contractClause from '../components/contractClause/contractClause'
  161. import editTarget from '../components/taskTarget/editTarget'
  162. import addTarget from '../components/taskTarget/addTarget'
  163. import taskTarget from '../components/taskTarget/taskTarget'
  164. import delTarget from '../components/taskTarget/delTarget'
  165. import contractOver from '../components/contractOver'
  166. import reverseCheck from '../components/reverseCheck'
  167. import BaseInfo from '@/HDrpManagement/projectChange/modules/modules/baseInfo/baseInfo'
  168. export default {
  169. name: "detail",
  170. data() {
  171. return {
  172. mainData:{},
  173. mainAreaData:{},
  174. modelList:[],
  175. isLeader:false,
  176. detailInfo:{},
  177. message:'确定删除当前条款吗?'
  178. }
  179. },
  180. components:{
  181. Del,
  182. SubmitCheck,
  183. editBtn,
  184. productBillno,
  185. addProduct,
  186. productDetailList,
  187. addProductDetail,
  188. addTool,
  189. toolList,
  190. addClass,
  191. productClassList,
  192. contractClause,
  193. editTarget,
  194. taskTarget,
  195. contractOver,
  196. reverseCheck,
  197. addTarget,
  198. delTarget,
  199. BaseInfo
  200. },
  201. watch: {
  202. mainData: {
  203. handler (val) {
  204. if (Object.keys(JSON.parse(window.sessionStorage.getItem('userInfo'))).length > 0) {
  205. this.isLeader = val.leader ? JSON.parse(window.sessionStorage.getItem('active_account')).userid == val.leader[0].userid : false
  206. } else {
  207. this.isLeader = true
  208. }
  209. },
  210. deep:true,
  211. immediate:true
  212. }
  213. },
  214. methods:{
  215. async queryMainData(id) {
  216. const res = await this.$api.requested({
  217. "id":20221121195102,
  218. "content": {
  219. "sa_contractid": this.$route.query.id
  220. }
  221. })
  222. this.mainData = res.data
  223. this.$refs.details.param.content.type = this.$route.query.tabIndex
  224. // this.$refs.details.param.content.where.type = this.$route.query.type
  225. this.mainData.type == '项目'
  226. ? this.mainData.typemx == '直销'
  227. ? this.$router.replace({path:'/contractDetail',query:{id:this.$route.query.id,rowindex:this.$route.query.rowindex,type:'直销项目',tabIndex:this.$route.query.tabIndex}}) : this.$router.replace({path:'/contractDetail',query:{id:this.$route.query.id,rowindex:this.$route.query.rowindex,type:'经销项目',tabIndex:this.$route.query.tabIndex}})
  228. : this.$router.replace({path:'/contractDetail',query:{id:this.$route.query.id,rowindex:this.$route.query.rowindex,type:this.mainData.type,tabIndex:this.$route.query.tabIndex}})
  229. this.changeDataStructure()
  230. },
  231. changeDataStructure() {
  232. let that = this
  233. this.mainData.type == '项目'
  234. ? this.mainData.typemx == '直销'
  235. ? this.mainAreaData = [
  236. /* 直销信息 */
  237. {
  238. label:'合同编号',
  239. value:this.mainData.billno
  240. },
  241. {
  242. label:'标题',
  243. value:this.mainData.title
  244. },
  245. {
  246. label:'合同模板',
  247. value:this.mainData.modelname
  248. },
  249. {
  250. label:'客户',
  251. value:this.mainData.enterprisename
  252. },
  253. {
  254. label:'项目名称',
  255. value:this.mainData.projectname
  256. },
  257. {
  258. label:'合同类型',
  259. value:this.mainData.type == '项目' ? this.mainData.typemx == '直销' ? '直销项目协议' : '经销项目协议' : ''
  260. },
  261. {
  262. label:'业务员',
  263. value:this.mainData.salername
  264. },
  265. {
  266. label:'合同有效期',
  267. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  268. },
  269. {
  270. label:'签约日期',
  271. value:this.mainData.signdate
  272. },
  273. {
  274. label:'签约金额(元)',
  275. value:this.mainData.signamount?this.mainData.signamount:0
  276. },
  277. {
  278. label:'创建时间',
  279. value:this.mainData.createdate
  280. },
  281. {
  282. label:'创建人',
  283. value:this.mainData.createby
  284. },
  285. {
  286. label:'状态',
  287. value:this.mainData.status,
  288. style:function () {
  289. let style = {}
  290. switch (that.mainData.status) {
  291. case '新建':
  292. style = {color:'#3874f6'}
  293. break;
  294. case '已提交':
  295. style = {color:'#52c41a'}
  296. break;
  297. case '审核':
  298. style = {color:'#333333'}
  299. break;
  300. default:
  301. break;
  302. }
  303. return style
  304. }
  305. },
  306. {
  307. label:'合同描述',
  308. value:this.mainData.remarks
  309. },
  310. ] : this.mainAreaData = [
  311. /* 经销信息 */
  312. {
  313. label:'合同编号',
  314. value:this.mainData.billno
  315. },
  316. {
  317. label:'标题',
  318. value:this.mainData.title
  319. },
  320. {
  321. label:'合同模板',
  322. value:this.mainData.modelname
  323. },
  324. {
  325. label:'经销商',
  326. value:this.mainData.enterprisename
  327. },
  328. {
  329. label:'项目名称',
  330. value:this.mainData.projectname
  331. },
  332. {
  333. label:'合同类型',
  334. value:this.mainData.type == '项目' ? this.mainData.typemx == '直销' ? '直销项目协议' : '经销项目协议' : ''
  335. },
  336. {
  337. label:'业务员',
  338. value:this.mainData.salername
  339. },
  340. {
  341. label:'合同有效期',
  342. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  343. },
  344. {
  345. label:'签约日期',
  346. value:this.mainData.signdate
  347. },
  348. {
  349. label:'签约金额(元)',
  350. value:this.mainData.signamount?this.mainData.signamount:0
  351. },
  352. {
  353. label:'创建时间',
  354. value:this.mainData.createdate
  355. },
  356. {
  357. label:'创建人',
  358. value:this.mainData.createby
  359. },
  360. {
  361. label:'状态',
  362. value:this.mainData.status,
  363. style:function () {
  364. let style = {}
  365. switch (that.mainData.status) {
  366. case '新建':
  367. style = {color:'#3874f6'}
  368. break;
  369. case '已提交':
  370. style = {color:'#52c41a'}
  371. break;
  372. case '审核':
  373. style = {color:'#333333'}
  374. break;
  375. default:
  376. break;
  377. }
  378. return style
  379. }
  380. },
  381. {
  382. label:'合同描述',
  383. value:this.mainData.remarks
  384. },
  385. ] : this.mainData.type == '框架'
  386. ? this.mainAreaData = [
  387. /* 合作协议 */
  388. {
  389. label:'合同编号',
  390. value:this.mainData.billno
  391. },
  392. {
  393. label:'标题',
  394. value:this.mainData.title
  395. },
  396. {
  397. label:'合同模板',
  398. value:this.mainData.modelname
  399. },
  400. {
  401. label:'经销商',
  402. value:this.mainData.enterprisename
  403. },
  404. {
  405. label:'业务员',
  406. value:this.mainData.salername
  407. },
  408. {
  409. label:'合同类型',
  410. value:'经销商合作协议'
  411. },
  412. {
  413. label:'折扣(%)',
  414. value:Math.round((this.mainData.discountrate * 100)*100)/100
  415. },
  416. {
  417. label:'合同有效期',
  418. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  419. },
  420. {
  421. label:'签约日期',
  422. value:this.mainData.signdate
  423. },
  424. {
  425. label:'签约金额(元)',
  426. value:this.mainData.signamount?this.mainData.signamount:0
  427. },
  428. {
  429. label:'创建时间',
  430. value:this.mainData.createdate
  431. },
  432. {
  433. label:'创建人',
  434. value:this.mainData.createby
  435. },
  436. {
  437. label:'状态',
  438. value:this.mainData.status,
  439. style:function () {
  440. let style = {}
  441. switch (that.mainData.status) {
  442. case '新建':
  443. style = {color:'#3874f6'}
  444. break;
  445. case '已提交':
  446. style = {color:'#52c41a'}
  447. break;
  448. case '审核':
  449. style = {color:'#333333'}
  450. break;
  451. default:
  452. break;
  453. }
  454. return style
  455. }
  456. },
  457. {
  458. label:'合同描述',
  459. value:this.mainData.remarks
  460. },
  461. ] : this.mainData.type == '工具借用'
  462. ? this.mainAreaData = [
  463. /* 工具借用 */
  464. {
  465. label:'合同编号',
  466. value:this.mainData.billno
  467. },
  468. {
  469. label:'标题',
  470. value:this.mainData.title
  471. },
  472. {
  473. label:'合同模板',
  474. value:this.mainData.modelname
  475. },
  476. {
  477. label:'客户',
  478. value:this.mainData.enterprisename
  479. },
  480. {
  481. label:'合同类型',
  482. value:'工具借用协议'
  483. },
  484. {
  485. label:'业务员',
  486. value:this.mainData.salername
  487. },
  488. {
  489. label:'合同有效期',
  490. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  491. },
  492. {
  493. label:'签约日期',
  494. value:this.mainData.signdate
  495. },
  496. {
  497. label:'单套价格(元)',
  498. value:this.mainData.signamount?this.mainData.signamount:0
  499. },
  500. {
  501. label:'创建时间',
  502. value:this.mainData.createdate
  503. },
  504. {
  505. label:'创建人',
  506. value:this.mainData.createby
  507. },
  508. {
  509. label:'状态',
  510. value:this.mainData.status,
  511. style:function () {
  512. let style = {}
  513. switch (that.mainData.status) {
  514. case '新建':
  515. style = {color:'#3874f6'}
  516. break;
  517. case '已提交':
  518. style = {color:'#52c41a'}
  519. break;
  520. case '审核':
  521. style = {color:'#333333'}
  522. break;
  523. default:
  524. break;
  525. }
  526. return style
  527. }
  528. },
  529. {
  530. label:'合同描述',
  531. value:this.mainData.remarks
  532. },
  533. ] : this.mainAreaData = [
  534. /* 居间协议 */
  535. {
  536. label:'合同编号',
  537. value:this.mainData.billno
  538. },
  539. {
  540. label:'标题',
  541. value:this.mainData.title
  542. },
  543. {
  544. label:'合同模板',
  545. value:this.mainData.modelname
  546. },
  547. {
  548. label:'项目合同',
  549. value:this.mainData.ascription_title
  550. },
  551. {
  552. label:'居间服务商',
  553. value:this.mainData.enterprisename
  554. },
  555. {
  556. label:'项目名称',
  557. value:this.mainData.projectname
  558. },
  559. {
  560. label:'合同类型',
  561. value:'居间协议'
  562. },
  563. {
  564. label:'业务员',
  565. value:this.mainData.salername
  566. },
  567. {
  568. label:'合同有效期',
  569. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  570. },
  571. {
  572. label:'签约日期',
  573. value:this.mainData.signdate
  574. },
  575. {
  576. label:this.mainData.calculatemodel == 1 ? '订单金额比例(%)' : '产品折扣(%)',
  577. value:this.mainData.calculatemodel == 1 ? Math.round((this.mainData.orderratio * 100)*100)/100 : Math.round((this.mainData.productdiscount *100)*100)/100
  578. },
  579. {
  580. label:'创建时间',
  581. value:this.mainData.createdate
  582. },
  583. {
  584. label:'创建人',
  585. value:this.mainData.createby
  586. },
  587. {
  588. label:'状态',
  589. value:this.mainData.status,
  590. style:function () {
  591. let style = {}
  592. switch (that.mainData.status) {
  593. case '新建':
  594. style = {color:'#3874f6'}
  595. break;
  596. case '已提交':
  597. style = {color:'#52c41a'}
  598. break;
  599. case '审核':
  600. style = {color:'#333333'}
  601. break;
  602. default:
  603. break;
  604. }
  605. return style
  606. }
  607. },
  608. {
  609. label:'合同描述',
  610. value:this.mainData.remarks
  611. },
  612. ]
  613. this.mainData.type == '项目'
  614. ? this.mainData.typemx == '直销'
  615. ? this.detailInfo = {
  616. baseInfo : [
  617. /* 直销信息 */
  618. {
  619. label:'合同编号',
  620. value:this.mainData.billno
  621. },
  622. {
  623. label:'标题',
  624. value:this.mainData.title
  625. },
  626. {
  627. label:'合同模板',
  628. value:this.mainData.modelname
  629. },
  630. {
  631. label:'客户',
  632. value:this.mainData.enterprisename
  633. },
  634. {
  635. label:'项目名称',
  636. value:this.mainData.projectname
  637. },
  638. {
  639. label:'合同类型',
  640. value:this.mainData.type == '项目' ? this.mainData.typemx == '直销' ? '直销项目协议' : '经销项目协议' : ''
  641. },
  642. {
  643. label:'业务员',
  644. value:this.mainData.salername
  645. },
  646. {
  647. label:'合同有效期',
  648. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  649. },
  650. {
  651. label:'签约日期',
  652. value:this.mainData.signdate
  653. },
  654. {
  655. label:'签约金额(元)',
  656. value:this.mainData.signamount?this.mainData.signamount:0
  657. },
  658. {
  659. label:'状态',
  660. value:this.mainData.status,
  661. style:function () {
  662. let style = {}
  663. switch (that.mainData.status) {
  664. case '新建':
  665. style = {color:'#3874f6'}
  666. break;
  667. case '已提交':
  668. style = {color:'#52c41a'}
  669. break;
  670. case '审核':
  671. style = {color:'#333333'}
  672. break;
  673. default:
  674. break;
  675. }
  676. return style
  677. }
  678. },
  679. {
  680. label:'合同描述',
  681. value:this.mainData.remarks
  682. },
  683. ],
  684. systemInfo: [
  685. {label:'创建人',value:this.mainData.createby},
  686. {label:'创建时间',value:this.mainData.createdate},
  687. {label:'最近编辑人',value:this.mainData.changeby},
  688. {label:'最近编辑时间',value:this.mainData.changedate},
  689. {label:'提交人',value:this.mainData.submitby},
  690. {label:'提交时间',value:this.mainData.submitdate},
  691. {label:'审核人',value:this.mainData.checkby},
  692. {label:'审核时间',value:this.mainData.checkdate},
  693. {label:'转手次数',value:this.mainData.leader[0].leadernum == 0?'0':this.mainData.leader[0].leadernum}
  694. ]
  695. }
  696. : this.detailInfo = {
  697. baseInfo : [
  698. /* 经销信息 */
  699. {
  700. label:'合同编号',
  701. value:this.mainData.billno
  702. },
  703. {
  704. label:'标题',
  705. value:this.mainData.title
  706. },
  707. {
  708. label:'合同模板',
  709. value:this.mainData.modelname
  710. },
  711. {
  712. label:'经销商',
  713. value:this.mainData.enterprisename
  714. },
  715. {
  716. label:'项目名称',
  717. value:this.mainData.projectname
  718. },
  719. {
  720. label:'合同类型',
  721. value:this.mainData.type == '项目' ? this.mainData.typemx == '直销' ? '直销项目协议' : '经销项目协议' : ''
  722. },
  723. {
  724. label:'业务员',
  725. value:this.mainData.salername
  726. },
  727. {
  728. label:'合同有效期',
  729. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  730. },
  731. {
  732. label:'签约日期',
  733. value:this.mainData.signdate
  734. },
  735. {
  736. label:'签约金额(元)',
  737. value:this.mainData.signamount?this.mainData.signamount:0
  738. },
  739. {
  740. label:'状态',
  741. value:this.mainData.status,
  742. style:function () {
  743. let style = {}
  744. switch (that.mainData.status) {
  745. case '新建':
  746. style = {color:'#3874f6'}
  747. break;
  748. case '已提交':
  749. style = {color:'#52c41a'}
  750. break;
  751. case '审核':
  752. style = {color:'#333333'}
  753. break;
  754. default:
  755. break;
  756. }
  757. return style
  758. }
  759. },
  760. {
  761. label:'合同描述',
  762. value:this.mainData.remarks
  763. },
  764. ],
  765. systemInfo: [
  766. {label:'创建人',value:this.mainData.createby},
  767. {label:'创建时间',value:this.mainData.createdate},
  768. {label:'最近编辑人',value:this.mainData.changeby},
  769. {label:'最近编辑时间',value:this.mainData.changedate},
  770. {label:'提交人',value:this.mainData.submitby},
  771. {label:'提交时间',value:this.mainData.submitdate},
  772. {label:'审核人',value:this.mainData.checkby},
  773. {label:'审核时间',value:this.mainData.checkdate},
  774. {label:'转手次数',value:this.mainData.leader[0].leadernum == 0?'0':this.mainData.leader[0].leadernum}
  775. ]
  776. }
  777. : this.mainData.type == '框架'
  778. ? this.detailInfo ={
  779. baseInfo : [
  780. /* 合作协议 */
  781. {
  782. label:'合同编号',
  783. value:this.mainData.billno
  784. },
  785. {
  786. label:'标题',
  787. value:this.mainData.title
  788. },
  789. {
  790. label:'合同模板',
  791. value:this.mainData.modelname
  792. },
  793. {
  794. label:'经销商',
  795. value:this.mainData.enterprisename
  796. },
  797. {
  798. label:'业务员',
  799. value:this.mainData.salername
  800. },
  801. {
  802. label:'合同类型',
  803. value:'经销商合作协议'
  804. },
  805. {
  806. label:'折扣(%)',
  807. value:Math.round((this.mainData.discountrate * 100)*100)/100
  808. },
  809. {
  810. label:'合同有效期',
  811. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  812. },
  813. {
  814. label:'签约日期',
  815. value:this.mainData.signdate
  816. },
  817. {
  818. label:'签约金额(元)',
  819. value:this.mainData.signamount?this.mainData.signamount:0
  820. },
  821. {
  822. label:'状态',
  823. value:this.mainData.status,
  824. style:function () {
  825. let style = {}
  826. switch (that.mainData.status) {
  827. case '新建':
  828. style = {color:'#3874f6'}
  829. break;
  830. case '已提交':
  831. style = {color:'#52c41a'}
  832. break;
  833. case '审核':
  834. style = {color:'#333333'}
  835. break;
  836. default:
  837. break;
  838. }
  839. return style
  840. }
  841. },
  842. {
  843. label:'合同描述',
  844. value:this.mainData.remarks
  845. },
  846. ],
  847. systemInfo: [
  848. {label:'创建人',value:this.mainData.createby},
  849. {label:'创建时间',value:this.mainData.createdate},
  850. {label:'最近编辑人',value:this.mainData.changeby},
  851. {label:'最近编辑时间',value:this.mainData.changedate},
  852. {label:'提交人',value:this.mainData.submitby},
  853. {label:'提交时间',value:this.mainData.submitdate},
  854. {label:'审核人',value:this.mainData.checkby},
  855. {label:'审核时间',value:this.mainData.checkdate},
  856. {label:'转手次数',value:this.mainData.leader[0].leadernum == 0?'0':this.mainData.leader[0].leadernum}
  857. ]
  858. }
  859. : this.mainData.type == '工具借用'
  860. ? this.detailInfo = {
  861. baseInfo : [
  862. /* 工具借用 */
  863. {
  864. label:'合同编号',
  865. value:this.mainData.billno
  866. },
  867. {
  868. label:'标题',
  869. value:this.mainData.title
  870. },
  871. {
  872. label:'合同模板',
  873. value:this.mainData.modelname
  874. },
  875. {
  876. label:'客户',
  877. value:this.mainData.enterprisename
  878. },
  879. {
  880. label:'合同类型',
  881. value:'工具借用协议'
  882. },
  883. {
  884. label:'业务员',
  885. value:this.mainData.salername
  886. },
  887. {
  888. label:'合同有效期',
  889. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  890. },
  891. {
  892. label:'签约日期',
  893. value:this.mainData.signdate
  894. },
  895. {
  896. label:'单套价格(元)',
  897. value:this.mainData.signamount?this.mainData.signamount:0
  898. },
  899. {
  900. label:'状态',
  901. value:this.mainData.status,
  902. style:function () {
  903. let style = {}
  904. switch (that.mainData.status) {
  905. case '新建':
  906. style = {color:'#3874f6'}
  907. break;
  908. case '已提交':
  909. style = {color:'#52c41a'}
  910. break;
  911. case '审核':
  912. style = {color:'#333333'}
  913. break;
  914. default:
  915. break;
  916. }
  917. return style
  918. }
  919. },
  920. {
  921. label:'合同描述',
  922. value:this.mainData.remarks
  923. },
  924. ],
  925. systemInfo: [
  926. {label:'创建人',value:this.mainData.createby},
  927. {label:'创建时间',value:this.mainData.createdate},
  928. {label:'最近编辑人',value:this.mainData.changeby},
  929. {label:'最近编辑时间',value:this.mainData.changedate},
  930. {label:'提交人',value:this.mainData.submitby},
  931. {label:'提交时间',value:this.mainData.submitdate},
  932. {label:'审核人',value:this.mainData.checkby},
  933. {label:'审核时间',value:this.mainData.checkdate},
  934. {label:'转手次数',value:this.mainData.leader[0].leadernum == 0?'0':this.mainData.leader[0].leadernum}
  935. ]
  936. }
  937. : this.detailInfo = {
  938. baseInfo : [
  939. /* 居间协议 */
  940. {
  941. label:'合同编号',
  942. value:this.mainData.billno
  943. },
  944. {
  945. label:'标题',
  946. value:this.mainData.title
  947. },
  948. {
  949. label:'合同模板',
  950. value:this.mainData.modelname
  951. },
  952. {
  953. label:'项目合同',
  954. value:this.mainData.ascription_title
  955. },
  956. {
  957. label:'居间服务商',
  958. value:this.mainData.enterprisename
  959. },
  960. {
  961. label:'项目名称',
  962. value:this.mainData.projectname
  963. },
  964. {
  965. label:'合同类型',
  966. value:'居间协议'
  967. },
  968. {
  969. label:'业务员',
  970. value:this.mainData.salername
  971. },
  972. {
  973. label:'合同有效期',
  974. value:`${this.mainData.begdate}-${this.mainData.enddate}`
  975. },
  976. {
  977. label:'签约日期',
  978. value:this.mainData.signdate
  979. },
  980. {
  981. label:this.mainData.calculatemodel == 1 ? '订单金额比例(%)' : '产品折扣(%)',
  982. value:this.mainData.calculatemodel == 1 ? Math.round((this.mainData.orderratio * 100)*100)/100 : Math.round((this.mainData.productdiscount *100)*100)/100
  983. },
  984. {
  985. label:'状态',
  986. value:this.mainData.status,
  987. style:function () {
  988. let style = {}
  989. switch (that.mainData.status) {
  990. case '新建':
  991. style = {color:'#3874f6'}
  992. break;
  993. case '已提交':
  994. style = {color:'#52c41a'}
  995. break;
  996. case '审核':
  997. style = {color:'#333333'}
  998. break;
  999. default:
  1000. break;
  1001. }
  1002. return style
  1003. }
  1004. },
  1005. {
  1006. label:'合同描述',
  1007. value:this.mainData.remarks
  1008. },
  1009. ],
  1010. systemInfo: [
  1011. {label:'创建人',value:this.mainData.createby},
  1012. {label:'创建时间',value:this.mainData.createdate},
  1013. {label:'最近编辑人',value:this.mainData.changeby},
  1014. {label:'最近编辑时间',value:this.mainData.changedate},
  1015. {label:'提交人',value:this.mainData.submitby},
  1016. {label:'提交时间',value:this.mainData.submitdate},
  1017. {label:'审核人',value:this.mainData.checkby},
  1018. {label:'审核时间',value:this.mainData.checkdate},
  1019. {label:'转手次数',value:this.mainData.leader[0].leadernum == 0?'0':this.mainData.leader[0].leadernum}
  1020. ]
  1021. }
  1022. },
  1023. // 监听切换数据,上一页,下一页
  1024. pageChange (id,rowindex,tabIndex) {
  1025. this.flag = false
  1026. tabIndex = this.$route.query.tabIndex
  1027. this.$router.replace({path:'/contractDetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
  1028. this.queryMainData(id)
  1029. },
  1030. onSuccess(){
  1031. this.visible = false
  1032. this.queryMainData(this.$route.query.id)
  1033. this.$emit('onSuccess')
  1034. },
  1035. successYear(year){
  1036. this.$refs.taskTarget.year = year
  1037. this.$refs.taskTarget.queryData()
  1038. }
  1039. // async getModelList () {
  1040. // let res = await this.$api.requested({
  1041. // "id": 20221121155801,
  1042. // "content": {
  1043. // "pageNumber": 1,
  1044. // "pageSize": 999999,
  1045. // "where":{
  1046. // "condition":""
  1047. // }
  1048. // }
  1049. // })
  1050. // this.modelList = res.data
  1051. // console.log(this.modelList);
  1052. // },
  1053. },
  1054. mounted () {
  1055. this.queryMainData(this.$route.query.id)
  1056. // this.getModelList()
  1057. },
  1058. created() {
  1059. }
  1060. }
  1061. </script>
  1062. <style scoped>
  1063. </style>