declarationDialog.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709
  1. <template>
  2. <ele-modal
  3. custom-class="ele-dialog-form long-dialog-form"
  4. :visible.sync="visibleDialog"
  5. :title="title"
  6. :close-on-click-modal="false"
  7. width="85%"
  8. append-to-body
  9. @close="handleClose"
  10. :maxable="true"
  11. >
  12. <el-form ref="form" :model="addForm" label-width="120px">
  13. <el-row>
  14. <el-col :span="8">
  15. <el-form-item label="工单编码">
  16. <el-input v-model="salesForm.code" size="small" placeholder="请输入" disabled></el-input>
  17. </el-form-item>
  18. </el-col>
  19. <!-- 用计划名称 -->
  20. <el-col :span="8">
  21. <el-form-item label="名称">
  22. <el-input v-model="salesForm.name" size="small" placeholder="请输入" disabled></el-input>
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="8">
  26. <el-form-item label="接收人">
  27. <el-input v-model="salesForm.receptionUserName" size="small" placeholder="请输入" disabled></el-input>
  28. </el-form-item>
  29. </el-col>
  30. </el-row>
  31. <el-row>
  32. <el-col :span="8">
  33. <el-form-item label="接收时间">
  34. <el-input v-model="salesForm.receptionTime" size="small" placeholder="请输入" disabled></el-input>
  35. </el-form-item>
  36. </el-col>
  37. <el-col :span="8">
  38. <el-form-item label="派单人">
  39. <el-input v-model="salesForm.dispatchUserName" size="small" placeholder="请输入" disabled></el-input>
  40. </el-form-item>
  41. </el-col>
  42. <el-col :span="8">
  43. <el-form-item label="派单时间">
  44. <el-input v-model="salesForm.dispatchTime" size="small" placeholder="请输入" disabled></el-input>
  45. </el-form-item>
  46. </el-col>
  47. </el-row>
  48. <el-row :gutter="24">
  49. <!-- <el-col :span="8">
  50. <el-form-item
  51. label="实际起始时间"
  52. prop="time"
  53. :rules="{
  54. required: true,
  55. message: '实际起始时间',
  56. trigger: 'change'
  57. }"
  58. >
  59. <el-date-picker
  60. style="width: 100%"
  61. v-model="addForm.time"
  62. type="datetimerange"
  63. value-format="yyyy-MM-dd HH:mm:ss"
  64. range-separator="至"
  65. start-placeholder="实际开始日期"
  66. end-placeholder="实际结束日期"
  67. :disabled="type == 'view'"
  68. @change="getTime"
  69. ></el-date-picker>
  70. </el-form-item>
  71. </el-col>
  72. <el-col :span="8">
  73. <el-form-item label="实际售后时长" prop="inFactDuration">
  74. <el-input v-model="addForm.inFactDuration" :disabled="true">
  75. <template slot="append">min</template>
  76. </el-input>
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="8">
  80. <el-form-item label="附件" prop="attachments">
  81. <fileMain v-model="addForm.attachments" :type="type == 'view' ? 'view' : 'add'"></fileMain>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="8">
  85. <el-form-item label="故障现象" prop="faultPhenomenon">
  86. <el-input
  87. type="textarea"
  88. placeholder="请输入内容"
  89. v-model="addForm.faultPhenomenon"
  90. :disabled="type == 'view'"
  91. ></el-input>
  92. </el-form-item>
  93. </el-col>
  94. <el-col :span="8">
  95. <el-form-item label="故障原因" prop="faultReason">
  96. <el-input
  97. type="textarea"
  98. placeholder="请输入内容"
  99. v-model="addForm.faultReason"
  100. :disabled="type == 'view'"
  101. ></el-input>
  102. </el-form-item>
  103. </el-col>
  104. <el-col :span="8">
  105. <el-form-item label="维修过程" prop="maintenanceProcess">
  106. <el-input
  107. type="textarea"
  108. placeholder="请输入内容"
  109. v-model="addForm.maintenanceProcess"
  110. :disabled="type == 'view'"
  111. ></el-input>
  112. </el-form-item>
  113. </el-col>-->
  114. <!-- ***改 -->
  115. <div class="ele-body-custom">
  116. <el-tabs v-model="activeName" style="width: 100%" type="border-card">
  117. <el-tab-pane label="需求信息" name="需求信息">
  118. <el-col :span="24" class="ele-body-customA">
  119. <info ref="infoRef2" v-if="infoDisabled" type="view" :isPurchaseNeed="false"></info>
  120. <info
  121. ref="infoRef2"
  122. v-else
  123. source="售后计划"
  124. state="可操作"
  125. type="view"
  126. :isPurchaseNeed="false"
  127. ></info>
  128. </el-col>
  129. </el-tab-pane>
  130. <el-tab-pane label="计划信息" name="计划信息">
  131. <planDialog ref="plan"></planDialog>
  132. </el-tab-pane>
  133. <el-tab-pane label="方案" name="方案">
  134. <el-col :span="24">
  135. <spareParts
  136. ref="sparePartsRef2"
  137. :state="type == 'edit' ? '可操作' : ''"
  138. :type="type == 'edit' ? 'edit' : 'view'"
  139. obtain="仓库"
  140. ></spareParts>
  141. <!-- source="报工信息" -->
  142. </el-col>
  143. </el-tab-pane>
  144. <!-- v-if="type == 'report'" 标记 -->
  145. <el-tab-pane v-if="infoShow" label="报工信息" name="报工信息" class="job_infor">
  146. <el-col :span="12" class="timing">
  147. <el-form-item
  148. label="开始时间"
  149. prop="startTime"
  150. :rules="{
  151. required: true,
  152. message: '请选择开始时间',
  153. trigger: 'change'
  154. }"
  155. >
  156. <el-date-picker
  157. :disabled="type == 'view'"
  158. v-model="addForm.startTime"
  159. type="datetime"
  160. placeholder="选择开始时间"
  161. format="yyyy-MM-dd HH:mm:ss"
  162. value-format="yyyy-MM-dd HH:mm:ss"
  163. @change="handleTimeChange"
  164. ></el-date-picker>
  165. </el-form-item>
  166. <el-form-item
  167. label="结束时间"
  168. prop="endTime"
  169. :rules="{
  170. required: true,
  171. message: '请选择结束时间',
  172. trigger: 'change'
  173. }"
  174. >
  175. <el-date-picker
  176. :disabled="type == 'view'"
  177. v-model="addForm.endTime"
  178. type="datetime"
  179. placeholder="选择结束时间"
  180. format="yyyy-MM-dd HH:mm:ss"
  181. value-format="yyyy-MM-dd HH:mm:ss"
  182. :picker-options="endTimePickerOptions"
  183. @change="handleTimeChange"
  184. ></el-date-picker>
  185. </el-form-item>
  186. </el-col>
  187. <el-col :span="12">
  188. <el-form-item label="实际售后时长" prop="inFactDuration" class="after_sales">
  189. <el-input v-model="days" :disabled="true">
  190. <template slot="append">天</template>
  191. </el-input>
  192. <el-input v-model="hours" :disabled="true">
  193. <template slot="append">小时</template>
  194. </el-input>
  195. <el-input v-model="minutes" :disabled="true">
  196. <template slot="append">分钟</template>
  197. </el-input>
  198. </el-form-item>
  199. </el-col>
  200. <el-col :span="24" class="ele-body-customA">
  201. <info ref="infoRef" source="报工信息" type="view" :isPurchaseNeed="false"></info>
  202. </el-col>
  203. <el-col :span="24">
  204. <headerTitle title="配件申请清单" style="margin-top: 10px"></headerTitle>
  205. <spareParts
  206. ref="sparePartsRef"
  207. source="报工信息"
  208. :type="type == 'edit' ? 'edit' : 'view'"
  209. ></spareParts>
  210. </el-col>
  211. <el-col :span="24">
  212. <spareInfo
  213. :detailList="detailList"
  214. ref="spareCycleRef"
  215. :types="type"
  216. title="配件回收清单"
  217. v-if="visibleDialog"
  218. />
  219. <!-- <headerTitle title="配件回收清单" style="margin-top: 10px"></headerTitle>
  220. <spareParts
  221. ref="spareCycleRef"
  222. :type="type"
  223. :source="type =='report' ? '配件回收':''"
  224. :state="type=='report'?'可操作':''"
  225. v-if="visibleDialog"
  226. ></spareParts>-->
  227. </el-col>
  228. </el-tab-pane>
  229. </el-tabs>
  230. </div>
  231. <!-- <el-col :span="24">
  232. <info ref="infoRef" type="view" :isPurchaseNeed="false"></info>
  233. </el-col>
  234. <el-col :span="24">
  235. <header-title title="方案" style="margin-top: 10px"></header-title>
  236. <spareParts ref="sparePartsRef" :type="type == 'edit' ? 'edit' : 'view'"></spareParts>
  237. </el-col>-->
  238. <!-- <el-col :span="8" v-if="type=='view'">
  239. <el-form-item label="报工时间" prop="acceptTime">
  240. <el-input v-model="addForm.acceptTime" :disabled="true"></el-input>
  241. </el-form-item>
  242. </el-col>
  243. <el-col :span="8" v-if="type=='view'">
  244. <el-form-item label="报工人" prop="executeUserName">
  245. <el-input v-model="addForm.executeUserName" :disabled="true"></el-input>
  246. </el-form-item>
  247. </el-col>
  248. <el-col :span="8" v-if="type=='view'">
  249. <el-form-item label="验收人" prop="accepterUserName">
  250. <el-input v-model="addForm.accepterUserName" :disabled="true"></el-input>
  251. </el-form-item>
  252. </el-col>
  253. <el-col :span="8" v-if="type=='view'">
  254. <el-form-item label="验收时间" prop="accepterTime">
  255. <el-input v-model="addForm.accepterTime" :disabled="true"></el-input>
  256. </el-form-item>
  257. </el-col>
  258. <el-col :span="8" v-if="type=='view'">
  259. <el-form-item label="验收意见" prop="accepterRemark">
  260. <el-input v-model="addForm.accepterRemark" :disabled="true" type="textarea"></el-input>
  261. </el-form-item>
  262. </el-col>-->
  263. </el-row>
  264. </el-form>
  265. <div slot="footer" class="footer">
  266. <el-button
  267. type="primary"
  268. @click="submitAdd"
  269. v-if="type != 'view'"
  270. >{{ type == 'edit'? '提交' : '报工'}}</el-button>
  271. <el-button type="primary" @click="saveAdd" v-if="type == 'report'">保存</el-button>
  272. <el-button @click="handleClose">取消</el-button>
  273. </div>
  274. </ele-modal>
  275. </template>
  276. <script>
  277. import spareInfo from '@/views/salesServiceManagement/accessory/components/spareInfo.vue';
  278. import fileMain from '@/components/addDoc/index.vue';
  279. import {
  280. reportWorkingSalesWorkOrder,
  281. updateScheme,
  282. getSalesWorkOrderById
  283. } from '@/api/salesServiceManagement/index';
  284. import spareParts from '@/views/salesServiceManagement/components/sparePartsList.vue';
  285. import info from '@/views/salesServiceManagement/components/info.vue';
  286. import planDialog from './planDialog.vue';
  287. export default {
  288. props: {},
  289. components: {
  290. fileMain,
  291. spareParts,
  292. info,
  293. planDialog,
  294. spareInfo
  295. },
  296. watch: {},
  297. computed: {
  298. infoDisabled() {
  299. let flag = this.type == 'view' || this.type == 'report';
  300. return flag;
  301. },
  302. infoShow() {
  303. let flag =
  304. this.type == 'report' ||
  305. this.addForm.orderStatus == 3 ||
  306. this.addForm.orderStatus == 4 ||
  307. this.addForm.orderStatus == 5;
  308. return flag;
  309. }
  310. },
  311. data() {
  312. return {
  313. activeName: '需求信息',
  314. title: '',
  315. visibleDialog: false,
  316. addForm: {
  317. id: '',
  318. time: [],
  319. attachments: [],
  320. reason: ''
  321. },
  322. row: {},
  323. type: '',
  324. days: 0,
  325. hours: 0,
  326. minutes: 0,
  327. endTime: '', // 结束时间
  328. startTime: '', // 开始时间
  329. endTimePickerOptions: {
  330. disabledDate: (time) => {
  331. // 如果开始时间已选择,禁用开始时间之前的日期
  332. if (this.addForm.startTime) {
  333. return time.getTime() < new Date(this.addForm.startTime).getTime();
  334. }
  335. return false;
  336. }
  337. },
  338. salesForm: {
  339. code: '',
  340. name: '',
  341. receptionUserName: '',
  342. receptionTime: '',
  343. dispatchUserName: '',
  344. dispatchTime: ''
  345. },
  346. detailList: []
  347. };
  348. },
  349. created() {},
  350. methods: {
  351. open(row, type) {
  352. this.visibleDialog = true;
  353. this.type = type;
  354. this.title = type == 'edit' ? '修改' : type == 'view' ? '详情' : '报工';
  355. if (type == 'report') {
  356. this.activeName = '报工信息';
  357. } else {
  358. this.activeName = '需求信息';
  359. }
  360. this.getDetail(row);
  361. },
  362. async getDetail(row) {
  363. const res = await getSalesWorkOrderById(row.id);
  364. this.addForm = res;
  365. this.salesForm = {
  366. code: res.code || '',
  367. receptionUserName: res.receptionUserName || '',
  368. receptionTime: res.receptionTime || '',
  369. dispatchUserName: res.afterSalesPlanVO.dispatchUserName || '',
  370. dispatchTime: res.afterSalesPlanVO.dispatchTime || '',
  371. name: res.afterSalesPlanVO.name || ''
  372. };
  373. // if (this.addForm.acceptTime) {
  374. // this.$set(this.addForm, 'time', [
  375. // this.addForm.acceptTime,
  376. // this.addForm.finishTime
  377. // ]);
  378. // }
  379. // ***
  380. this.$nextTick(() => {
  381. // this.$refs.infoRef.init(res.afterSalesDemandVO);
  382. // this.$refs.sparePartsRef.setTableValue(res?.costListVOS || []);
  383. // *** 报工信息的
  384. if (this.infoShow) {
  385. this.detailList = res.accessoryApply?.detailList;
  386. this.$refs.infoRef.init(res.afterSalesDemandVO);
  387. this.$refs.sparePartsRef.setTableValue(res?.costListVOS || []);
  388. this.$refs.infoRef2.init(res.afterSalesDemandVO);
  389. this.$refs.sparePartsRef2.setTableValue(res?.costListVOS || []);
  390. this.$set(this.addForm, 'startTime', this.addForm.acceptTime);
  391. this.$set(this.addForm, 'endTime', this.addForm.finishTime);
  392. this.calculateTimeConversion(res.inFactDuration);
  393. } else {
  394. this.$refs.infoRef2.init(res.afterSalesDemandVO);
  395. this.$refs.sparePartsRef2.setTableValue(res?.costListVOS || []);
  396. }
  397. this.$refs.plan.init(res.afterSalesPlanVO);
  398. // afterSalesPlanVO
  399. });
  400. },
  401. // 时间选择
  402. handleTimeChange() {
  403. // 如果结束时间早于开始时间,清空结束时间
  404. if (this.addForm.startTime && this.addForm.endTime) {
  405. const startTime = new Date(this.addForm.startTime).getTime();
  406. const endTime = new Date(this.addForm.endTime).getTime();
  407. if (startTime > endTime) {
  408. this.addForm.endTime = '';
  409. this.days = 0;
  410. this.hours = 0;
  411. this.minutes = 0;
  412. return;
  413. }
  414. if (this.addForm.startTime && this.addForm.endTime) {
  415. this.calculateTimeDifference();
  416. }
  417. }
  418. },
  419. // 时间转换 分钟
  420. calculateTimeConversion(minutes) {
  421. if (!minutes && minutes != 0) {
  422. this.timeAssignment(0, 0, 0);
  423. return;
  424. }
  425. // 确保输入是数字
  426. const totalMinutes = parseFloat(minutes);
  427. // 计算天、小时、分钟
  428. const days = (totalMinutes / (24 * 60)).toFixed(1);
  429. const hours = (totalMinutes / 60).toFixed(1);
  430. this.days = days;
  431. this.hours = hours;
  432. this.minutes = minutes;
  433. },
  434. // 时间赋值
  435. timeAssignment(days, hours, mins) {
  436. // 格式化结果(保留一位小数)
  437. let timeDifference = {
  438. days: days.toFixed(1),
  439. hours: hours.toFixed(1),
  440. minutes: mins.toFixed(0)
  441. };
  442. this.days = timeDifference.days;
  443. this.hours = timeDifference.hours;
  444. this.minutes = timeDifference.minutes;
  445. },
  446. // 时间转换 年月日 时分秒
  447. calculateTimeDifference() {
  448. // 计算时间差
  449. const startTime = new Date(this.addForm.startTime);
  450. const endTime = new Date(this.addForm.endTime);
  451. const timeDiff = endTime - startTime; // 毫秒数
  452. // 转换为天、小时、分钟
  453. const minutes = timeDiff / (1000 * 60);
  454. const hours = minutes / 60;
  455. const days = hours / 24;
  456. this.timeAssignment(days, hours, minutes);
  457. },
  458. // 提交
  459. async submitAdd() {
  460. // *** 更改
  461. let info = this.type == 'edit' ? 'infoRef2' : 'infoRef';
  462. let spare = this.type == 'edit' ? 'sparePartsRef2' : 'sparePartsRef';
  463. let validInfo = await this.$refs[info].getValidate();
  464. let validSpare = await this.$refs[spare].getValidate();
  465. // if (this.type == 'report') {
  466. // let validCycle = await this.$refs.spareCycleRef.getValidate();
  467. // }
  468. let dataA = this.$refs[info].getValue();
  469. let obj = this.infoData(dataA);
  470. this.finalSubmit(spare, this.type, obj);
  471. },
  472. // *** 需求信息参数
  473. infoData(data) {
  474. let obj = JSON.parse(JSON.stringify(data));
  475. obj.productDetail = obj.tableList;
  476. delete obj.tableList;
  477. obj.id = this.addForm.afterSalesDemandVO.id;
  478. obj.productDetail.map((el) => delete el.produceTime);
  479. return obj;
  480. },
  481. listData(list) {
  482. let arr = [];
  483. if (list.length == 0) return list;
  484. list.map((item) => {
  485. this.addData(item, arr);
  486. });
  487. return arr;
  488. },
  489. addData(item, arr) {
  490. let totalCount = item.totalCount ? item.totalCount - 0 : '';
  491. if (!totalCount || totalCount == 1) {
  492. arr.push(item);
  493. return;
  494. }
  495. for (let i = 0; i < totalCount; i++) {
  496. item.totalPrice = item.singlePrice || 0;
  497. item.totalCount = 1;
  498. arr.push(item);
  499. }
  500. },
  501. // 最后提交 spare:具体的方案组件 obj:需求信息参数
  502. finalSubmit(spare, type, obj) {
  503. this.$refs.form.validate(async (valid) => {
  504. if (valid) {
  505. let data = {
  506. acceptTime: this.addForm.startTime,
  507. finishTime: this.addForm.endTime,
  508. attachments: this.addForm.attachments,
  509. maintenanceProcess: this.addForm.maintenanceProcess,
  510. faultPhenomenon: this.addForm.faultPhenomenon,
  511. faultReason: this.addForm.faultReason,
  512. inFactDuration: this.minutes,
  513. id: this.addForm.id,
  514. costListVOS: this.$refs[spare].getTableValue(),
  515. salesDemandUpdatePO: obj
  516. };
  517. // 报工 逻辑处理 配件申请清单数据
  518. if (type == 'report') {
  519. let list = this.$refs.spareCycleRef.getSpareData() || [];
  520. let detailList = this.listData(list);
  521. // 判断清单数据是否存在
  522. if (detailList.length > 0) {
  523. // 指定绑定第一条设备信息
  524. let item = data.salesDemandUpdatePO.productDetail[0];
  525. let accessoryApply = {
  526. demandDetailId: item.id,
  527. categoryCode: item.categoryCode,
  528. categoryName: item.categoryName,
  529. contactName: obj.contractInfo.name,
  530. contactCode: obj.contractInfo.code,
  531. detailList
  532. };
  533. data.accessoryApply = accessoryApply;
  534. }
  535. }
  536. // let api = this.type == 'edit' ? updateScheme : reportWorkingSalesWorkOrder;
  537. let api = type == 'edit' ? updateScheme : reportWorkingSalesWorkOrder;
  538. await api(data).then((res) => {
  539. if (!res) return;
  540. this.$message.success('操作成功');
  541. this.visibleDialog = false;
  542. this.$emit('reload');
  543. });
  544. } else {
  545. return false;
  546. }
  547. });
  548. },
  549. // 保存
  550. saveAdd() {
  551. this.$refs.form.validate(async (valid) => {
  552. if (valid) {
  553. let dataA = this.$refs.infoRef2.getValue();
  554. let obj = this.infoData(dataA);
  555. let data = {
  556. acceptTime: this.addForm.startTime,
  557. finishTime: this.addForm.endTime,
  558. attachments: this.addForm.attachments,
  559. maintenanceProcess: this.addForm.maintenanceProcess,
  560. faultPhenomenon: this.addForm.faultPhenomenon,
  561. faultReason: this.addForm.faultReason,
  562. inFactDuration: this.minutes,
  563. id: this.addForm.id,
  564. costListVOS: this.$refs.sparePartsRef2.getTableValue(),
  565. salesDemandUpdatePO: obj
  566. };
  567. if (!data.acceptTime || !data.finishTime) {
  568. data.acceptTime = '';
  569. data.finishTime = '';
  570. data.inFactDuration = 0;
  571. }
  572. // 报工 逻辑处理 配件申请清单数据
  573. let list = this.$refs.spareCycleRef.getSpareData() || [];
  574. if (list.length > 0) {
  575. let detailList = this.listData(list);
  576. // 指定绑定第一条设备信息
  577. let item = data.salesDemandUpdatePO.productDetail[0];
  578. let accessoryApply = {
  579. demandDetailId: item.id,
  580. categoryCode: item.categoryCode,
  581. categoryName: item.categoryName,
  582. contactName: obj.contractInfo.name,
  583. contactCode: obj.contractInfo.code,
  584. detailList
  585. };
  586. data.accessoryApply = accessoryApply;
  587. }
  588. await updateScheme(data).then((res) => {
  589. if (!res) return;
  590. this.$message.success('操作成功');
  591. this.visibleDialog = false;
  592. this.$emit('reload');
  593. });
  594. }
  595. });
  596. },
  597. // calculateTimeDifference(totalMinutes) {
  598. // if (!totalMinutes) {
  599. // this.hours = 0;
  600. // this.minutes = 0;
  601. // return;
  602. // }
  603. // const hours = Math.floor(totalMinutes / 60);
  604. // const minutes = totalMinutes % 60;
  605. // this.hours = hours;
  606. // this.minutes = minutes;
  607. // },
  608. // getTime() {
  609. // if (this.addForm.time?.length) {
  610. // this.$set(
  611. // this.addForm,
  612. // 'inFactDuration',
  613. // parseInt(
  614. // (new Date(this.addForm.time[1]).getTime() -
  615. // new Date(this.addForm.time[0]).getTime()) /
  616. // 60000
  617. // )
  618. // );
  619. // }
  620. // },
  621. handleClose() {
  622. this.visibleDialog = false;
  623. }
  624. }
  625. };
  626. </script>
  627. <style lang="scss" scoped>
  628. .dialog_top {
  629. margin-bottom: 10px;
  630. display: flex;
  631. align-items: center;
  632. span {
  633. margin-left: 50px;
  634. }
  635. .name {
  636. font-weight: 800;
  637. color: #40a9ff;
  638. }
  639. }
  640. ::v-deep .el-row {
  641. display: flex;
  642. flex-wrap: wrap;
  643. }
  644. .btns {
  645. text-align: right;
  646. // margin: 10px 0;
  647. }
  648. .main_container {
  649. width: 100%;
  650. display: flex;
  651. justify-content: space-between;
  652. }
  653. .ele-body-custom {
  654. width: 100%;
  655. margin-bottom: 24px;
  656. // :deep(.divider){
  657. // display: none;
  658. // }
  659. }
  660. .ele-body-customA {
  661. :deep(.divider) {
  662. display: none;
  663. }
  664. }
  665. .after_sales {
  666. :deep(.el-input--medium) {
  667. width: 30%;
  668. }
  669. :deep(.el-input--medium:nth-child(1)) {
  670. margin-right: 5%;
  671. }
  672. :deep(.el-input--medium:nth-child(2)) {
  673. margin-right: 5%;
  674. }
  675. }
  676. .job_infor {
  677. :deep(.ele-body) {
  678. padding: 15px 0;
  679. }
  680. }
  681. .timing {
  682. display: flex;
  683. :deep(.el-form-item) {
  684. width: 50%;
  685. .el-date-editor {
  686. width: 100%;
  687. }
  688. }
  689. }
  690. </style>