index.vue 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247
  1. <template>
  2. <zj-page-container>
  3. <zj-page-fill class="neibuview">
  4. <zj-form-container ref="formRef" v-if="formData.orderType" :form-data="formData">
  5. <zj-form-module :title="`费用结算-${({ INSTALL: '安装', REPAIR: '维修' })[formData.orderType]}`" :form-data="formData"
  6. :form-items="repairInfo" />
  7. </zj-form-container>
  8. <el-empty v-else description="暂时没有结算信息"></el-empty>
  9. </zj-page-fill>
  10. <div v-if="formData.settleStatus == 'YWG'" style="box-sizing: border-box;padding: 16px;">
  11. <el-button type="primary" size="mini" @click="queding">确定结算</el-button>
  12. </div>
  13. <div v-else style="box-sizing: border-box;padding: 16px;">
  14. <el-button v-if="showbtn" type="danger" size="mini" @click="itemOrderBaseSettleNormReset">重新结算</el-button>
  15. </div>
  16. </zj-page-container>
  17. </template>
  18. <script>
  19. import { required } from '@/components/template/rules_verify.js'
  20. import { listPageV2 } from "@/api/workOrder/settlementStandardInstall";
  21. import { listPageV2 as listPageV2Repair } from "@/api/workOrder/settlementStandardRepair";
  22. import { orderBaseSettleNormDetail, orderBaseSettleNormConfirm, settleNormInstallQuery, settleNormOtherQuery, orderBaseSettleNormReset } from "@/api/workOrderPool.js";
  23. import { EventBus } from '@/utils/eventBus'
  24. export default {
  25. props: {
  26. id: {
  27. type: [String, Number],
  28. default: null,
  29. }
  30. },
  31. data() {
  32. return {
  33. gonglv: [],
  34. gonglr: [],
  35. classifyList: [],
  36. otherList: [],
  37. formData: {},
  38. showbtn: false,
  39. }
  40. },
  41. computed: {
  42. // 产品信息
  43. productInfoColumns() {
  44. return [
  45. {
  46. columnAttributes: {
  47. label: '工单来源',
  48. prop: 'orderChannelText'
  49. },
  50. },
  51. {
  52. columnAttributes: {
  53. label: '产品品牌',
  54. prop: 'brand'
  55. },
  56. },
  57. {
  58. columnAttributes: {
  59. label: '产品大类',
  60. prop: 'mainName'
  61. },
  62. },
  63. {
  64. columnAttributes: {
  65. label: '产品小类',
  66. prop: 'smallName'
  67. },
  68. },
  69. {
  70. columnAttributes: {
  71. label: '产品机型',
  72. prop: 'goodsName'
  73. },
  74. },
  75. {
  76. columnAttributes: {
  77. label: '数量',
  78. prop: 'orderNum'
  79. },
  80. }]
  81. },
  82. // 师傅信息
  83. masterInfoColumns() {
  84. return [{
  85. columnAttributes: {
  86. label: '工程师名称',
  87. prop: 'workerName'
  88. },
  89. render: (h, { row, column, index }) => {
  90. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  91. {this.formData?.normList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  92. </div>
  93. }
  94. },
  95. {
  96. columnAttributes: {
  97. label: '联系电话',
  98. prop: 'workerMobile',
  99. width: '140px'
  100. },
  101. render: (h, { row, column, index }) => {
  102. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  103. {this.formData?.normList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  104. </div>
  105. }
  106. },
  107. {
  108. columnAttributes: {
  109. label: '结算费用',
  110. prop: 'settleAmount'
  111. },
  112. render: (h, { row, column, index }) => {
  113. return <div class="redbordererr">
  114. <el-form-item label="" label-width="0px" prop={`normList.${row.pfuqinid}.workerList.${row.zijideid}.${column.columnAttributes.prop}`} rules={required}>
  115. <el-input
  116. type="number"
  117. disabled={!this.formData.normList[row.pfuqinid].bianji || this.formData?.normList[row.pfuqinid]?.workerList?.[row.zijideid]?.["poolStatus"] == "YES"}
  118. value={this.formData?.normList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  119. onInput={(val) => {
  120. // var num = 0
  121. // this.formData?.normList[row.pfuqinid]?.workerList.map((item, in_dex) => {
  122. // if (in_dex !== row.zijideid) {
  123. // num += Number(item.settleAmount)
  124. // }
  125. // })
  126. // // 最大
  127. // var maxNum = Number(this.formData.normList[row.pfuqinid]["settleAmount"]) - num
  128. // this.formData.normList[row.pfuqinid].workerList[row.zijideid][column.columnAttributes.prop] = Number(val) > maxNum ? maxNum : Number(val)
  129. this.formData.normList[row.pfuqinid].workerList[row.zijideid][column.columnAttributes.prop] = val
  130. }}
  131. placeholder="请输入内容"
  132. >
  133. </el-input>
  134. </el-form-item>
  135. </div>
  136. }
  137. }, {
  138. columnAttributes: {
  139. label: '确认人',
  140. prop: 'confirmBy'
  141. },
  142. render: (h, { row, column, index }) => {
  143. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  144. {this.formData?.normList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  145. </div>
  146. }
  147. },
  148. {
  149. columnAttributes: {
  150. label: '确认时间',
  151. prop: 'confirmTime'
  152. },
  153. render: (h, { row, column, index }) => {
  154. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  155. {this.formData?.normList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  156. </div>
  157. }
  158. },
  159. {
  160. columnAttributes: {
  161. label: '汇总状态',
  162. prop: 'poolStatus'
  163. },
  164. render: (h, { row, column, index }) => {
  165. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  166. {({ "NO": "未汇总", "YES": "已汇总" })[this.formData?.normList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]]}
  167. </div>
  168. }
  169. }, {
  170. columnAttributes: {
  171. label: '操作',
  172. prop: '',
  173. fixed: 'right',
  174. width: "100px"
  175. },
  176. render: (h, { row, column, index }) => {
  177. return this.formData.settleStatus == 'YWG' || (this.formData.settleStatus == 'YJS' && this.formData?.normList[row.pfuqinid]?.workerList.find(item => item.poolStatus == "NO")) ? (<div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  178. {this.formData.normList[row.pfuqinid].bianji ? <el-button type="text" onClick={
  179. () => {
  180. var yjsje = [0, 0, 0, this.formData?.normList[row.pfuqinid]?.workerList.filter(item => item.poolStatus == "YES").map(item => item.settleAmount)].reduce(function (prev, curr, idx, arr) {
  181. return prev + curr;
  182. })
  183. var nou = this.formData?.normList[row.pfuqinid]?.workerList.filter(item => item.poolStatus == "NO")
  184. var qian = ((((Number(this.formData?.normList[row.pfuqinid]["settleAmount"]) - yjsje) / nou.length) * 100) / 100).toFixed(2)
  185. var rongyu = ((Number(this.formData?.normList[row.pfuqinid]["settleAmount"]) - yjsje) - (qian * nou.length)).toFixed(2)
  186. nou.map((item, index) => {
  187. if (index === 0) {
  188. item.settleAmount = (Number(qian) + Number(rongyu)).toFixed(2)
  189. } else {
  190. item.settleAmount = qian
  191. }
  192. })
  193. }
  194. }>平分费用</el-button> : null}
  195. {this.formData.normList[row.pfuqinid].bianji ? <el-button type="text" onClick={
  196. () => {
  197. var item = this.formData.normList[row.pfuqinid]
  198. if ([0, 0, 0, ...item.workerList.map(val => Number(val.settleAmount))].reduce(function (prev, curr, idx, arr) {
  199. return prev + curr;
  200. }) == Number(item.settleAmount)) {
  201. this.formData.normList[row.pfuqinid].bianji = false
  202. } else {
  203. this.$message.warning(`费用信息-${item.channelText}-${item.parentCategoryName}-${item.categoryName}-${item.label}:合计结算总金额与总金额不等`)
  204. }
  205. }
  206. }>确定</el-button> : null}
  207. {!this.formData.normList[row.pfuqinid].bianji ? <el-button type="text" onClick={
  208. () => {
  209. this.formData.normList[row.pfuqinid].bianji = true
  210. }
  211. }>修改</el-button> : null}
  212. </div>) : null
  213. }
  214. }]
  215. },
  216. masterInfoColumnsOther() {
  217. return [{
  218. columnAttributes: {
  219. label: '工程师名称',
  220. prop: 'workerName'
  221. },
  222. render: (h, { row, column, index }) => {
  223. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  224. {this.formData?.otherNormList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  225. </div>
  226. }
  227. },
  228. {
  229. columnAttributes: {
  230. label: '联系电话',
  231. prop: 'workerMobile',
  232. width: '140px'
  233. },
  234. render: (h, { row, column, index }) => {
  235. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  236. {this.formData?.otherNormList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  237. </div>
  238. }
  239. },
  240. {
  241. columnAttributes: {
  242. label: '结算费用',
  243. prop: 'settleAmount'
  244. },
  245. render: (h, { row, column, index }) => {
  246. return <div class="redbordererr">
  247. <el-form-item label="" label-width="0px" prop={`otherNormList.${row.pfuqinid}.workerList.${row.zijideid}.${column.columnAttributes.prop}`} rules={required}>
  248. <el-input
  249. type="number"
  250. disabled={!this.formData.otherNormList[row.pfuqinid].bianji || this.formData?.otherNormList[row.pfuqinid]?.workerList?.[row.zijideid]?.["poolStatus"] == "YES"}
  251. value={this.formData?.otherNormList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  252. onInput={(val) => {
  253. // var num = 0
  254. // this.formData?.otherNormList[row.pfuqinid]?.workerList.map((item, in_dex) => {
  255. // if (in_dex !== row.zijideid) {
  256. // num += Number(item.settleAmount)
  257. // }
  258. // })
  259. // // 最大
  260. // var maxNum = Number(this.formData.otherNormList[row.pfuqinid]["settleAmount"]) - num
  261. // this.formData.otherNormList[row.pfuqinid].workerList[row.zijideid][column.columnAttributes.prop] = Number(val) > maxNum ? maxNum : Number(val)
  262. this.formData.otherNormList[row.pfuqinid].workerList[row.zijideid][column.columnAttributes.prop] = val
  263. }}
  264. placeholder="请输入内容"
  265. >
  266. </el-input>
  267. </el-form-item>
  268. </div>
  269. }
  270. }, {
  271. columnAttributes: {
  272. label: '确认人',
  273. prop: 'confirmBy'
  274. },
  275. render: (h, { row, column, index }) => {
  276. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  277. {this.formData?.otherNormList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  278. </div>
  279. }
  280. },
  281. {
  282. columnAttributes: {
  283. label: '确认时间',
  284. prop: 'confirmTime'
  285. },
  286. render: (h, { row, column, index }) => {
  287. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  288. {this.formData?.otherNormList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]}
  289. </div>
  290. }
  291. },
  292. {
  293. columnAttributes: {
  294. label: '汇总状态',
  295. prop: 'poolStatus'
  296. },
  297. render: (h, { row, column, index }) => {
  298. return <div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  299. {({ "NO": "未汇总", "YES": "已汇总" })[this.formData?.otherNormList[row.pfuqinid]?.workerList?.[row.zijideid]?.[column.columnAttributes.prop]]}
  300. </div>
  301. }
  302. }, {
  303. columnAttributes: {
  304. label: '操作',
  305. prop: '',
  306. fixed: 'right',
  307. width: "100px"
  308. },
  309. render: (h, { row, column, index }) => {
  310. return this.formData.settleStatus == 'YWG' || (this.formData.settleStatus == 'YJS' && this.formData?.otherNormList[row.pfuqinid]?.workerList.find(item => item.poolStatus == "NO")) ? (<div class="redbordererr" style="padding:0 6px;display:flex;align-items:center;">
  311. {this.formData.otherNormList[row.pfuqinid].bianji ? <el-button type="text" onClick={
  312. () => {
  313. var yjsje = [0, 0, 0, this.formData?.otherNormList[row.pfuqinid]?.workerList.filter(item => item.poolStatus == "YES").map(item => item.settleAmount)].reduce(function (prev, curr, idx, arr) {
  314. return prev + curr;
  315. })
  316. var nou = this.formData?.otherNormList[row.pfuqinid]?.workerList.filter(item => item.poolStatus == "NO")
  317. var qian = ((((Number(this.formData?.otherNormList[row.pfuqinid]["settleAmount"]) - yjsje) / nou.length) * 100) / 100).toFixed(2)
  318. var rongyu = ((Number(this.formData?.otherNormList[row.pfuqinid]["settleAmount"]) - yjsje) - (qian * nou.length)).toFixed(2)
  319. nou.map((item, index) => {
  320. if (index === 0) {
  321. item.settleAmount = (Number(qian) + Number(rongyu)).toFixed(2)
  322. } else {
  323. item.settleAmount = qian
  324. }
  325. })
  326. }
  327. }>平分费用</el-button> : null}
  328. {this.formData.otherNormList[row.pfuqinid].bianji ? <el-button type="text" onClick={
  329. () => {
  330. var item = this.formData.otherNormList[row.pfuqinid]
  331. if ([0, 0, 0, ...item.workerList.map(val => Number(val.settleAmount))].reduce(function (prev, curr, idx, arr) {
  332. return prev + curr;
  333. }) == Number(item.settleAmount)) {
  334. this.formData.otherNormList[row.pfuqinid].bianji = false
  335. } else {
  336. this.$message.warning(`其他费用信息-${item.channelText}-${item.type}-${item.label}:合计结算总金额与总金额不等`)
  337. }
  338. }
  339. }>确定</el-button> : null}
  340. {!this.formData.otherNormList[row.pfuqinid].bianji ? <el-button type="text" onClick={
  341. () => {
  342. this.formData.otherNormList[row.pfuqinid].bianji = true
  343. }
  344. }>修改</el-button> : null}
  345. </div>) : null
  346. }
  347. }]
  348. },
  349. classifyColumns() {
  350. return [{
  351. columnAttributes: {
  352. label: '工单类型',
  353. prop: 'typeName'
  354. },
  355. },
  356. {
  357. columnAttributes: {
  358. label: '结算工单来源',
  359. prop: 'channelId',
  360. width: '110'
  361. },
  362. render: (h, { row, column, index }) => {
  363. return this.panfuan(row) ? <div class="redbordererr">
  364. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  365. <el-select
  366. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  367. value={row[column.columnAttributes.prop]}
  368. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  369. onChange={(val) => {
  370. row.parentCategoryId = ""
  371. row.parentCategoryName = ""
  372. row.categoryId = ""
  373. row.categoryName = ""
  374. row.label = ""
  375. row.normAmount = ""
  376. row.repairAmount = ""
  377. row.settleNormId = ""
  378. if (val) {
  379. var data = this.classifyListChuLi("orderChannelId", "orderChannelText").find(item => item.value == val)
  380. row.channelText = data.label
  381. } else {
  382. row.channelText = ""
  383. }
  384. }}
  385. placeholder="请选择">
  386. {this.classifyListChuLi("orderChannelId", "orderChannelText").map((item, index_) => <el-option key={index_} label={item.label} value={item.value}></el-option>)}
  387. </el-select>
  388. </el-form-item>
  389. </div> : null
  390. }
  391. },
  392. {
  393. columnAttributes: {
  394. label: '结算产品大类',
  395. prop: 'parentCategoryId',
  396. width: '110'
  397. },
  398. render: (h, { row, column, index }) => {
  399. return this.panfuan(row) ? <div class="redbordererr">
  400. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  401. <el-select
  402. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  403. value={row[column.columnAttributes.prop]}
  404. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  405. onChange={(val) => {
  406. row.categoryId = ""
  407. row.categoryName = ""
  408. row.label = ""
  409. row.normAmount = ""
  410. row.repairAmount = ""
  411. row.settleNormId = ""
  412. if (val) {
  413. var data = this.classifyListChuLi("parentCategoryId", "parentCategoryName", (item) => item.orderChannelId == row.channelId).find(item => item.value == val)
  414. row.parentCategoryName = data.label
  415. } else {
  416. row.parentCategoryName = ""
  417. }
  418. }}
  419. placeholder="请选择">
  420. {this.classifyListChuLi("parentCategoryId", "parentCategoryName", (item) => item.orderChannelId == row.channelId).map((item, index_) => <el-option key={index_} label={item.label} value={item.value}></el-option>)}
  421. </el-select>
  422. </el-form-item>
  423. </div> : null
  424. }
  425. },
  426. {
  427. columnAttributes: {
  428. label: '结算产品小类',
  429. prop: 'categoryId',
  430. width: '110'
  431. },
  432. render: (h, { row, column, index }) => {
  433. return this.panfuan(row) ? <div class="redbordererr">
  434. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  435. <el-select
  436. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  437. value={row[column.columnAttributes.prop]}
  438. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  439. onChange={(val) => {
  440. row.label = ""
  441. row.normAmount = ""
  442. row.repairAmount = ""
  443. row.settleNormId = ""
  444. if (val) {
  445. var data = this.classifyListChuLi("categoryId", "categoryName", (item) => item.orderChannelId == row.channelId && item.parentCategoryId == row.parentCategoryId).find(item => item.value == val)
  446. row.categoryName = data.label
  447. } else {
  448. row.categoryName = ""
  449. }
  450. }}
  451. placeholder="请选择">
  452. {this.classifyListChuLi("categoryId", "categoryName", (item) => item.orderChannelId == row.channelId && item.parentCategoryId == row.parentCategoryId).map((item, index_) => <el-option key={index_} label={item.label} value={item.value}></el-option>)}
  453. </el-select>
  454. </el-form-item>
  455. </div> : null
  456. }
  457. }]
  458. },
  459. normColumns() {
  460. return [
  461. ...this.productInfoColumns,
  462. ...this.classifyColumns,
  463. ...(() => {
  464. if (this.formData.orderType == 'INSTALL') {
  465. return [
  466. {
  467. columnAttributes: {
  468. label: '结算功率',
  469. prop: 'label'
  470. },
  471. render: (h, { row, column, index }) => {
  472. return this.panfuan(row) ? <div class="redbordererr">
  473. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  474. <el-select
  475. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  476. value={row[column.columnAttributes.prop]}
  477. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  478. onChange={(val) => {
  479. if (val) {
  480. var data = this.getflList(this.gonglv, row).find(item => item.label == val)
  481. row.normAmount = data.normAmount
  482. row.settleNormId = data.id
  483. } else {
  484. row.normAmount = ""
  485. row.settleNormId = ""
  486. }
  487. }}
  488. placeholder="请选择">
  489. {this.getflList(this.gonglv, row).map((item, index_) => <el-option key={index_} label={item.label} value={item.label}></el-option>)}
  490. </el-select>
  491. </el-form-item>
  492. </div> : null
  493. }
  494. },
  495. {
  496. columnAttributes: {
  497. label: '结算标准(元/套)',
  498. prop: 'normAmount'
  499. },
  500. },
  501. {
  502. columnAttributes: {
  503. label: '结算数量',
  504. prop: 'settleNum'
  505. },
  506. render: (h, { row, column, index }) => {
  507. return this.panfuan(row) ? <div class="redbordererr">
  508. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  509. <el-input
  510. type="number"
  511. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  512. value={row[column.columnAttributes.prop]}
  513. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  514. placeholder="请输入内容"
  515. >
  516. </el-input>
  517. </el-form-item>
  518. </div> : null
  519. }
  520. },
  521. {
  522. columnAttributes: {
  523. label: '结算金额(元)',
  524. prop: 'settleAmount',
  525. },
  526. render: (h, { row, column, index }) => {
  527. row.settleAmount = (((Number(row.normAmount || 0) * Number(row.settleNum || 0)) * 100) / 100).toFixed(2)
  528. return this.panfuan(row) ? <div class="redbordererr">
  529. {row.settleAmount}
  530. </div> : null
  531. }
  532. },
  533. ]
  534. }
  535. return []
  536. })(),
  537. ...(() => {
  538. if (this.formData.orderType == 'REPAIR') {
  539. return [
  540. {
  541. columnAttributes: {
  542. label: '质保类型',
  543. prop: 'label'
  544. },
  545. render: (h, { row, column, index }) => {
  546. return this.panfuan(row) ? <div class="redbordererr">
  547. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  548. <el-select
  549. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  550. value={row[column.columnAttributes.prop]}
  551. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  552. onChange={(val) => {
  553. if (val) {
  554. var data = this.getflList(this.gonglr, row).find(item => item.label == val)
  555. row.repairAmount = data.repairAmount
  556. row.normAmount = data.normAmount
  557. row.settleNormId = data.id
  558. } else {
  559. row.repairAmount = ""
  560. row.normAmount = ""
  561. row.settleNormId = ""
  562. }
  563. }}
  564. placeholder="请选择">
  565. {this.getflList(this.gonglr, row).map((item, index_) => <el-option key={index_} label={({ INSIDE: '保内', OUT: '保外' })[item.label]} value={item.label}></el-option>)}
  566. </el-select>
  567. </el-form-item>
  568. </div> : null
  569. }
  570. },
  571. {
  572. columnAttributes: {
  573. label: '上门费(元/单)',
  574. prop: 'repairAmount',
  575. width: '110'
  576. },
  577. render: (h, { row, column, index }) => {
  578. return this.panfuan(row) ? <div class="redbordererr">
  579. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  580. <el-input
  581. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  582. type="number"
  583. value={row[column.columnAttributes.prop]}
  584. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  585. placeholder="请输入内容"
  586. >
  587. </el-input>
  588. </el-form-item>
  589. </div> : null
  590. }
  591. },
  592. {
  593. columnAttributes: {
  594. label: '维修费结算比例%',
  595. prop: 'normAmount',
  596. width: '110'
  597. },
  598. render: (h, { row, column, index }) => {
  599. return this.panfuan(row) ? <div class="redbordererr">
  600. {row[column.columnAttributes.prop]}%
  601. </div> : null
  602. }
  603. },
  604. {
  605. columnAttributes: {
  606. label: '维修费用结算',
  607. prop: 'repairNormAmount',
  608. width: '110'
  609. },
  610. render: (h, { row, column, index }) => {
  611. return this.panfuan(row) ? <div class="redbordererr">
  612. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  613. <el-input
  614. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  615. type="number"
  616. value={row[column.columnAttributes.prop]}
  617. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  618. placeholder="请输入内容"
  619. >
  620. </el-input>
  621. </el-form-item>
  622. </div> : null
  623. }
  624. },
  625. {
  626. columnAttributes: {
  627. label: '结算数量',
  628. prop: 'settleNum'
  629. },
  630. render: (h, { row, column, index }) => {
  631. return this.panfuan(row) ? <div class="redbordererr">
  632. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  633. <el-input
  634. type="number"
  635. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  636. value={row[column.columnAttributes.prop]}
  637. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  638. placeholder="请输入内容"
  639. >
  640. </el-input>
  641. </el-form-item>
  642. </div> : null
  643. }
  644. },
  645. {
  646. columnAttributes: {
  647. label: '结算金额(元)',
  648. prop: 'settleAmount',
  649. },
  650. render: (h, { row, column, index }) => {
  651. row.settleAmount = (((Number(row.repairAmount || 0) + (Number(row.normAmount || 0) / 100) * Number(row.repairNormAmount || 0) * Number(row.settleNum || 0)) * 100) / 100).toFixed(2)
  652. return this.panfuan(row) ? <div class="redbordererr">
  653. {row.settleAmount}
  654. </div> : null
  655. }
  656. },
  657. ]
  658. }
  659. return []
  660. })(),
  661. {
  662. columnAttributes: {
  663. label: '备注',
  664. prop: 'remark'
  665. },
  666. render: (h, { row, column, index }) => {
  667. return this.panfuan(row) ? <div class="redbordererr">
  668. <el-form-item label="" label-width="0px">
  669. <el-input
  670. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  671. value={row[column.columnAttributes.prop]}
  672. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  673. placeholder="请输入内容"
  674. >
  675. </el-input>
  676. </el-form-item>
  677. </div> : null
  678. }
  679. },
  680. ...this.masterInfoColumns
  681. ]
  682. },
  683. otherclassifyColumns() {
  684. return [
  685. {
  686. columnAttributes: {
  687. label: '结算工单来源',
  688. prop: 'channelId',
  689. width: '110'
  690. },
  691. render: (h, { row, column, index }) => {
  692. return this.panfuan(row) ? <div class="redbordererr">
  693. <el-form-item label="" label-width="0px" prop={`normList.${index}.${column.columnAttributes.prop}`} rules={required}>
  694. <el-select
  695. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  696. value={row[column.columnAttributes.prop]}
  697. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  698. onChange={(val) => {
  699. row.type = ""
  700. row.label = ""
  701. row.normAmount = ""
  702. row.settleNormId = ""
  703. row.settleNum = ""
  704. if (val) {
  705. var data = this.otherListChuLi("orderChannelId", "orderChannelText").find(item => item.value == val)
  706. row.channelText = data.label
  707. } else {
  708. row.channelText = ""
  709. }
  710. }}
  711. placeholder="请选择">
  712. {this.otherListChuLi("orderChannelId", "orderChannelText").map((item, index_) => <el-option key={index_} label={item.label} value={item.value}></el-option>)}
  713. </el-select>
  714. </el-form-item>
  715. </div> : null
  716. }
  717. },
  718. {
  719. columnAttributes: {
  720. label: '费用类型',
  721. prop: 'type'
  722. },
  723. render: (h, { row, column, index }) => {
  724. return this.panfuan(row) ? <div class="redbordererr">
  725. <el-form-item label="" label-width="0px">
  726. <el-select
  727. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  728. value={row[column.columnAttributes.prop]}
  729. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  730. onChange={(val) => {
  731. row.label = ""
  732. row.normAmount = ""
  733. row.settleNormId = ""
  734. row.settleNum = ""
  735. }}
  736. placeholder="请选择">
  737. {this.otherListChuLi("type", "typeName", (item) => item.orderChannelId == row.channelId).map((item, index_) => <el-option key={index_} label={item.label} value={item.value}></el-option>)}
  738. </el-select>
  739. </el-form-item>
  740. </div> : null
  741. }
  742. },
  743. {
  744. columnAttributes: {
  745. label: '规格',
  746. prop: 'label'
  747. },
  748. render: (h, { row, column, index }) => {
  749. return this.panfuan(row) ? <div class="redbordererr">
  750. <el-form-item label="" label-width="0px">
  751. <el-select
  752. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  753. value={row[column.columnAttributes.prop]}
  754. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  755. onChange={(val) => {
  756. row.settleNum = ""
  757. if (val) {
  758. var data = this.otherListChuLi("label", "label", (item) => { return item.orderChannelId == row.channelId && item.type == row.type }, "normAmount", "id").find(item => item.label == val)
  759. row.normAmount = data.normAmount
  760. row.settleNormId = data.id
  761. } else {
  762. row.normAmount = ""
  763. row.settleNormId = ""
  764. }
  765. }}
  766. placeholder="请选择">
  767. {this.otherListChuLi("label", "label", (item) => item.orderChannelId == row.channelId && item.type == row.type).map((item, index_) => <el-option key={index_} label={item.label} value={item.value}></el-option>)}
  768. </el-select>
  769. </el-form-item>
  770. </div> : null
  771. }
  772. }]
  773. },
  774. otherColumns() {
  775. return [
  776. ...this.productInfoColumns,
  777. ...this.otherclassifyColumns,
  778. {
  779. columnAttributes: {
  780. label: '单价(元/套)',
  781. prop: 'normAmount'
  782. },
  783. },
  784. {
  785. columnAttributes: {
  786. label: '数量',
  787. prop: 'settleNum'
  788. },
  789. render: (h, { row, column, index }) => {
  790. return this.panfuan(row) ? <div class="redbordererr">
  791. <el-form-item label="" label-width="0px">
  792. <el-input
  793. type="number"
  794. disabled={!row.bianji || row.normAmount ? this.formData.settleStatus != 'YWG' : true}
  795. value={row[column.columnAttributes.prop]}
  796. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  797. placeholder="请输入内容"
  798. >
  799. </el-input>
  800. </el-form-item>
  801. </div> : null
  802. }
  803. },
  804. {
  805. columnAttributes: {
  806. label: '结算金额(元)',
  807. prop: 'settleAmount',
  808. },
  809. render: (h, { row, column, index }) => {
  810. row.settleAmount = (((Number(row.normAmount || 0) * Number(row.settleNum || 0)) * 100) / 100).toFixed(2)
  811. return this.panfuan(row) ? <div class="redbordererr">
  812. {row.settleAmount}
  813. </div> : null
  814. }
  815. },
  816. {
  817. columnAttributes: {
  818. label: '备注',
  819. prop: 'remark'
  820. },
  821. render: (h, { row, column, index }) => {
  822. return this.panfuan(row) ? <div class="redbordererr">
  823. <el-form-item label="" label-width="0px">
  824. <el-input
  825. disabled={!row.bianji || this.formData.settleStatus != 'YWG'}
  826. value={row[column.columnAttributes.prop]}
  827. onInput={(val) => { row[column.columnAttributes.prop] = val }}
  828. placeholder="请输入内容"
  829. >
  830. </el-input>
  831. </el-form-item>
  832. </div> : null
  833. }
  834. },
  835. ...this.masterInfoColumnsOther
  836. ]
  837. },
  838. // 师傅汇总
  839. shiFuHuiZongColumns() {
  840. return [
  841. {
  842. columnAttributes: {
  843. label: '工程师名称',
  844. prop: 'workerName'
  845. },
  846. },
  847. {
  848. columnAttributes: {
  849. label: '联系电话',
  850. prop: 'workerMobile'
  851. },
  852. },
  853. {
  854. columnAttributes: {
  855. label: '费用结算总金额',
  856. prop: 'zonjine'
  857. },
  858. },
  859. {
  860. columnAttributes: {
  861. label: '结算总金额',
  862. prop: 'settleAmount'
  863. },
  864. }]
  865. },
  866. repairInfo() {
  867. return [
  868. {
  869. name: 'el-input',
  870. md: 6,
  871. attributes: { disabled: true, },
  872. formItemAttributes: { label: '网点名称', prop: 'websitName' },
  873. },
  874. {
  875. name: 'el-input',
  876. md: 6,
  877. attributes: { disabled: true, },
  878. formItemAttributes: { label: '工程师', prop: 'workerName' },
  879. },
  880. {
  881. name: 'el-input',
  882. md: 6,
  883. attributes: { disabled: true, },
  884. formItemAttributes: { label: '联系电话', prop: 'mobile' },
  885. },
  886. {
  887. name: 'el-input',
  888. md: 6,
  889. attributes: { disabled: true, },
  890. formItemAttributes: { label: '身份证', prop: 'idcard' },
  891. },
  892. {
  893. md: 24,
  894. name: 'slot-component',
  895. formItemAttributes: {
  896. label: '费用结算',
  897. prop: 'normList',
  898. },
  899. render: (h, { props, onInput }) => {
  900. var { formData } = props
  901. return (
  902. <zj-table
  903. columns={this.normColumns}
  904. table-data={formData.normList}
  905. tableAttributes={{
  906. 'span-method': ({ row, column, rowIndex, columnIndex }) => {
  907. if (columnIndex === this.normColumns.length - 1) {
  908. if (row.zijideid == 0) {
  909. return {
  910. rowspan: formData.normList[row.pfuqinid].workerList.length,
  911. colspan: 1
  912. };
  913. } else {
  914. return {
  915. rowspan: 0,
  916. colspan: 0
  917. };
  918. }
  919. }
  920. }
  921. }}
  922. />
  923. )
  924. }
  925. },
  926. {
  927. md: 24,
  928. name: 'slot-component',
  929. formItemAttributes: {
  930. label: '其他费用结算',
  931. prop: 'otherNormList',
  932. },
  933. render: (h, { props, onInput }) => {
  934. var { formData } = props
  935. return (
  936. <zj-table
  937. columns={this.otherColumns}
  938. table-data={formData.otherNormList}
  939. tableAttributes={{
  940. 'span-method': ({ row, column, rowIndex, columnIndex }) => {
  941. if (columnIndex === this.otherColumns.length - 1) {
  942. if (row.zijideid == 0) {
  943. return {
  944. rowspan: formData.otherNormList[row.pfuqinid].workerList.length,
  945. colspan: 1
  946. };
  947. } else {
  948. return {
  949. rowspan: 0,
  950. colspan: 0
  951. };
  952. }
  953. }
  954. }
  955. }}
  956. />
  957. )
  958. }
  959. },
  960. {
  961. md: 24,
  962. name: 'slot-component',
  963. formItemAttributes: {
  964. label: '师傅结算费用汇总',
  965. prop: 'otherNormList',
  966. },
  967. render: (h, { props, onInput }) => {
  968. var { formData } = props
  969. return (
  970. <zj-table
  971. columns={this.shiFuHuiZongColumns}
  972. table-data={this.zongbiaoheji}
  973. tableAttributes={{
  974. 'span-method': ({ row, column, rowIndex, columnIndex }) => {
  975. if (columnIndex === 2) {
  976. if (rowIndex == 0) {
  977. return {
  978. rowspan: this.zongbiaoheji.length,
  979. colspan: 1
  980. };
  981. } else {
  982. return {
  983. rowspan: 0,
  984. colspan: 0
  985. };
  986. }
  987. }
  988. }
  989. }}
  990. />
  991. )
  992. }
  993. }
  994. ]
  995. },
  996. zongbiaoheji() {
  997. var workers = {}
  998. var zonjine = 0
  999. this.formData.normList.map(item => {
  1000. zonjine += (Number(item.settleAmount) || 0);
  1001. item?.workerList?.map(data => {
  1002. if (!workers[data.workerId]) {
  1003. workers[data.workerId] = JSON.parse(JSON.stringify(data))
  1004. } else {
  1005. workers[data.workerId].settleAmount = (((Number(workers[data.workerId].settleAmount) + Number(data.settleAmount)) * 100) / 100).toFixed(2)
  1006. }
  1007. })
  1008. })
  1009. this.formData.otherNormList.map(item => {
  1010. zonjine += (Number(item.settleAmount) || 0);
  1011. item?.workerList?.map(data => {
  1012. if (!workers[data.workerId]) {
  1013. workers[data.workerId] = JSON.parse(JSON.stringify(data))
  1014. } else {
  1015. workers[data.workerId].settleAmount = (((Number(workers[data.workerId].settleAmount) + Number(data.settleAmount)) * 100) / 100).toFixed(2)
  1016. }
  1017. })
  1018. })
  1019. return Object.keys(workers).map(key => {
  1020. workers[key].zonjine = ((zonjine * 100) / 100).toFixed(2)
  1021. return workers[key]
  1022. })
  1023. },
  1024. },
  1025. watch: {
  1026. id: {
  1027. handler(newVal, oldVal) {
  1028. this.init()
  1029. },
  1030. deep: true,
  1031. immediate: true,
  1032. },
  1033. },
  1034. methods: {
  1035. panfuan(item) {
  1036. if (!!item.id) {
  1037. return true
  1038. } else {
  1039. return false
  1040. }
  1041. },
  1042. // 产品类型过滤筛选
  1043. classifyListChuLi(value, label, func, ...keys) {
  1044. var obj = {}
  1045. this.classifyList.map(item => {
  1046. if (func && !func(item)) {
  1047. return
  1048. }
  1049. obj[item[value]] = {
  1050. label: item[label]
  1051. }
  1052. for (var key of keys) {
  1053. obj[item[value]][key] = item[key]
  1054. }
  1055. })
  1056. return Object.keys(obj).map(value => {
  1057. return {
  1058. value: value,
  1059. ...obj[value]
  1060. }
  1061. })
  1062. },
  1063. // 其他类型筛选
  1064. otherListChuLi(value, label, func, ...keys) {
  1065. var obj = {}
  1066. this.otherList.map(item => {
  1067. if (func && !func(item)) {
  1068. return
  1069. }
  1070. obj[item[value]] = {
  1071. label: item[label]
  1072. }
  1073. for (var key of keys) {
  1074. obj[item[value]][key] = item[key]
  1075. }
  1076. })
  1077. return Object.keys(obj).map(value => {
  1078. return {
  1079. value: value,
  1080. ...obj[value]
  1081. }
  1082. })
  1083. },
  1084. getflList(list = [], row = {},) {
  1085. return list.filter(item => (
  1086. item.type == row.type &&
  1087. item.parentCategoryId == row.parentCategoryId &&
  1088. item.categoryId == row.categoryId
  1089. // &&
  1090. // !~this.formData.normList.map(v => `${v.type}_${v.parentCategoryId}_${v.categoryId}_${v.label}`).filter(v => (
  1091. // v != `${row.type}_${row.parentCategoryId}_${row.categoryId}_${row.label}`
  1092. // )).indexOf(`${item.type}_${item.parentCategoryId}_${item.categoryId}_${item.label}`)
  1093. ))
  1094. },
  1095. queding() {
  1096. this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
  1097. if (valid) {
  1098. try {
  1099. this.formData.normList.filter(item => !!item.id).map(item => {
  1100. if ([0, 0, 0, ...item.workerList.map(val => Number(val.settleAmount))].reduce(function (prev, curr, idx, arr) {
  1101. return prev + curr;
  1102. }) !== Number(item.settleAmount)) {
  1103. throw new Error(`费用信息-${item.channelText}-${item.parentCategoryName}-${item.categoryName}-${item.label}:合计结算总金额与总金额不等`);
  1104. }
  1105. })
  1106. this.formData.otherNormList.filter(item => !!item.id).map(item => {
  1107. if ([0, 0, 0, ...item.workerList.map(val => Number(val.settleAmount))].reduce(function (prev, curr, idx, arr) {
  1108. return prev + curr;
  1109. }) !== Number(item.settleAmount)) {
  1110. throw new Error(`其他费用信息-${item.channelText}-${item.type}-${item.label}:合计结算总金额与总金额不等`);
  1111. }
  1112. })
  1113. } catch (err) {
  1114. this.$message.warning(err.message)
  1115. return
  1116. }
  1117. orderBaseSettleNormConfirm({
  1118. ...this.formData,
  1119. normList: this.formData.normList.filter(item => !!item.id),
  1120. otherNormList: this.formData.otherNormList.filter(item => !!item.id),
  1121. }).then(res => {
  1122. this.$message({
  1123. type: 'success',
  1124. message: '结算成功'
  1125. })
  1126. // 结算成功后跳转列表
  1127. EventBus.$emit('handleOrderClone')
  1128. })
  1129. }
  1130. })
  1131. },
  1132. itemOrderBaseSettleNormReset() {
  1133. try {
  1134. this.formData.normList.filter(item => !!item.id).map(item => {
  1135. if ([0, 0, 0, ...item.workerList.map(val => Number(val.settleAmount))].reduce(function (prev, curr, idx, arr) {
  1136. return prev + curr;
  1137. }) !== Number(item.settleAmount)) {
  1138. throw new Error(`费用信息-${item.channelText}-${item.parentCategoryName}-${item.categoryName}-${item.label}:合计结算总金额与总金额不等`);
  1139. }
  1140. })
  1141. this.formData.otherNormList.filter(item => !!item.id).map(item => {
  1142. if ([0, 0, 0, ...item.workerList.map(val => Number(val.settleAmount))].reduce(function (prev, curr, idx, arr) {
  1143. return prev + curr;
  1144. }) !== Number(item.settleAmount)) {
  1145. throw new Error(`其他费用信息-${item.channelText}-${item.type}-${item.label}:合计结算总金额与总金额不等`);
  1146. }
  1147. })
  1148. } catch (err) {
  1149. this.$message.warning(err.message)
  1150. return
  1151. }
  1152. orderBaseSettleNormReset({
  1153. ...this.formData,
  1154. normList: this.formData.normList.filter(item => !!item.id),
  1155. otherNormList: this.formData.otherNormList.filter(item => !!item.id),
  1156. }).then(res => {
  1157. this.$message({
  1158. type: 'success',
  1159. message: '结算成功'
  1160. })
  1161. // 结算成功后跳转列表
  1162. EventBus.$emit('handleOrderClone')
  1163. })
  1164. },
  1165. init() {
  1166. if (this.id) {
  1167. orderBaseSettleNormDetail({
  1168. id: this.id
  1169. }).then(res => {
  1170. var orderChannelId
  1171. var normList = []
  1172. var pfuqinid = 0
  1173. res.data.normList.map((item, index) => {
  1174. if (!orderChannelId) { orderChannelId = item.orderChannelId }
  1175. item.settleNum = item.settleNum || ""
  1176. normList.push({ ...item, pfuqinid: pfuqinid, zijideid: 0, bianji: res.data.settleStatus == 'YJS' ? false : true })
  1177. item.workerList.map((resdata, ind_) => {
  1178. if (resdata.poolStatus === "NO") { this.showbtn = true }
  1179. if (ind_ !== 0) { normList.push({ pfuqinid: pfuqinid, zijideid: ind_ }) }
  1180. if (ind_ == item.workerList.length - 1) { pfuqinid += (ind_ + 1) }
  1181. })
  1182. })
  1183. var otherNormList = []
  1184. var qtpfuqinid = 0
  1185. res.data.otherNormList.map((item, index) => {
  1186. item.settleNum = item.settleNum || ""
  1187. otherNormList.push({ ...item, pfuqinid: qtpfuqinid, zijideid: 0, bianji: res.data.settleStatus == 'YJS' ? false : true })
  1188. item.workerList.map((resdata, ind_) => {
  1189. if (resdata.poolStatus === "NO") { this.showbtn = true }
  1190. if (ind_ !== 0) { otherNormList.push({ pfuqinid: qtpfuqinid, zijideid: ind_ }) }
  1191. if (ind_ == item.workerList.length - 1) { qtpfuqinid += (ind_ + 1) }
  1192. })
  1193. })
  1194. this.formData = res.data ? { ...res.data, normList, otherNormList } : {};
  1195. // -------------------------------------------------------------------
  1196. if (this.formData.orderType == "INSTALL") {
  1197. // 安装单请求
  1198. listPageV2({ "pageNum": 1, "pageSize": -1 }).then(res => {
  1199. this.gonglv = res.data.records
  1200. })
  1201. } else if (this.formData.orderType == "REPAIR") {
  1202. // 维修单请求
  1203. listPageV2Repair({ "pageNum": 1, "pageSize": -1 }).then(res => {
  1204. this.gonglr = res.data.records
  1205. })
  1206. }
  1207. settleNormInstallQuery({
  1208. settleNormType: this.formData.orderType,
  1209. type: this.formData.orderSmallType
  1210. }).then(res => {
  1211. this.classifyList = res.data
  1212. })
  1213. settleNormOtherQuery().then(res => {
  1214. this.otherList = res.data
  1215. })
  1216. })
  1217. }
  1218. }
  1219. }
  1220. }
  1221. </script>
  1222. <style lang="scss" scoped>
  1223. .neibuview {
  1224. box-sizing: border-box;
  1225. padding-left: 16px;
  1226. ::v-deep &>.zj-page-fill-scroll {
  1227. box-sizing: border-box;
  1228. padding-right: 16px;
  1229. &>div:nth-child(1) {
  1230. margin-top: 20px;
  1231. }
  1232. }
  1233. }
  1234. </style>