index.vue 48 KB

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