123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789 |
- <template>
- <div class="detailPage">
- <div class="topButton">
- <a-button type="primary" style="margin-right: 20px" @click="enterDialog"> 打印 </a-button>
- <a-button type="primary" @click="goBack">
- {{ t('common.back') }}
- </a-button>
- </div>
- <div class="content" ref="print" id="print">
- <div class="content_left">
- <div class="content_left_info">
- <Descriptions title="客户信息" :column="3" v-if="detailData.customer">
- <DescriptionsItem label="客户名称">
- {{ detailData.customer.companyName }}</DescriptionsItem
- >
- <DescriptionsItem label="联系人">
- {{ detailData.customer.customerName }}
- </DescriptionsItem>
- <DescriptionsItem label="联系电话"> {{ detailData.customer.phone }} </DescriptionsItem>
- </Descriptions>
- <Descriptions title="发票信息" :column="3" v-if="detailData.repairInvoice">
- <DescriptionsItem label="是否开票">
- {{ detailData.repairInvoice.repairId ? '是' : '否' }}</DescriptionsItem
- >
- <DescriptionsItem
- v-if="detailData.repairInvoice && detailData.repairInvoice.invoiceHead"
- label="发票抬头"
- >
- {{ detailData.repairInvoice.invoiceHead }}
- </DescriptionsItem>
- <DescriptionsItem
- v-if="detailData.repairInvoice && detailData.repairInvoice.invoiceNum"
- label="税号"
- >
- {{ detailData.repairInvoice.invoiceNum }}
- </DescriptionsItem>
- </Descriptions>
- <Descriptions title="产品及故障信息" :column="3">
- <DescriptionsItem label="产品名称" v-if="detailData.repairerVo">
- {{ t(`routes.scene.tableType.${detailData.repairerVo.cameraType}`) }}
- </DescriptionsItem>
- <DescriptionsItem label="产品SN码" v-if="detailData.repairerVo">
- {{ detailData.repairerVo.cameraSnCode }}
- </DescriptionsItem>
- <DescriptionsItem label="保修届满日期">
- {{ detailData.repairerVo.warrantyDate }}
- </DescriptionsItem>
- <DescriptionsItem label="报修日期">
- {{ detailData.repairerVo?.createTime }}
- </DescriptionsItem>
- <DescriptionsItem class="ellipsis" label="送修方式" v-if="detailData.customerAddress">
- {{
- detailData.customerAddress.sendType == 0
- ? '前台送修'
- : `快递寄送:${detailData.customerAddress?.sendTrackingNum || '暂无单号'}`
- }}
- </DescriptionsItem>
- <DescriptionsItem label="保修类型">
- {{ t(`routes.spares.warrantyType.${detailData.repairerVo.warrantyType}`) }}
- </DescriptionsItem>
- <DescriptionsItem label="维修单号">
- {{ repairId }}
- </DescriptionsItem>
- <DescriptionsItem label="上次维修单号" :span="2">
- {{ detailData.lastRepairId }}
- </DescriptionsItem>
- <DescriptionsItem label="故障描述" :span="3">
- <div>
- <p class="htmlText" :title="detailData.repairerVo.faultMsg">{{
- detailData.repairerVo.faultMsg
- }}</p>
- <PreviewGroup>
- <Image
- :width="80"
- :height="80"
- v-for="item in detailData.repairerVo.faultImg"
- :key="item"
- :src="item"
- />
- </PreviewGroup>
- </div>
- </DescriptionsItem>
- <DescriptionsItem label="机器外观">
- <div>
- <p class="htmlText" :title="detailData.orderReceivingVo?.orderFaultMsg">{{
- detailData.orderReceivingVo?.orderFaultMsg
- }}</p>
- <PreviewGroup>
- <Image
- :width="80"
- :height="80"
- v-for="item in detailData.orderReceivingVo?.orderFaultImg"
- :key="item"
- :src="item"
- />
- </PreviewGroup>
- </div>
- </DescriptionsItem>
- <DescriptionsItem label="售后工程师">
- {{ detailData.orderReceivingVo?.sysUserName }}
- </DescriptionsItem>
- <DescriptionsItem label="接单日期">
- {{ detailData.orderReceivingVo?.createTime }}
- </DescriptionsItem>
- <DescriptionsItem label="附件、附带物品">
- {{ detailData.orderReceivingVo?.annex }}
- </DescriptionsItem>
- </Descriptions>
- <!-- <Descriptions title="" :column="3">
- <DescriptionsItem label="备注内容">
- {{ detailData.repairerVo?.remark }}
- </DescriptionsItem>
- </Descriptions> -->
- <Descriptions
- v-for="(Voitem, index) in detailData.repairRegisterVoList"
- :key="Voitem.createTime"
- :column="3"
- >
- <DescriptionsItem :label="index == '0' ? '检测结果' : '维修登记'">
- <div>
- <p class="htmlText" :title="Voitem.checkResult">{{ Voitem.checkResult }}</p>
- <PreviewGroup>
- <Image
- style="margin-right: 20px"
- :width="80"
- :height="80"
- v-for="item in Voitem.checkImg"
- :key="item"
- :src="item"
- />
- </PreviewGroup>
- </div>
- </DescriptionsItem>
- <DescriptionsItem :label="index == '0' ? '检测日期' : '登记日期'">
- {{ Voitem?.createTime }}
- </DescriptionsItem>
- <DescriptionsItem label="所需备件">
- {{ Voitem?.partNamesStr }}
- </DescriptionsItem>
- </Descriptions>
- <Descriptions
- title="维修清单"
- :column="3"
- layout="vertical"
- v-show="detailData.repairerVo.status > 30"
- >
- <DescriptionsItem label="费用明细" :span="3">
- <BasicTable @register="registerTable" />
- </DescriptionsItem>
- </Descriptions>
- <Descriptions :column="3">
- <DescriptionsItem label="维修工程师">
- {{ detailData.repairRegisterVo?.sysUserName }}</DescriptionsItem
- >
- <DescriptionsItem label="维修完成日期">
- {{ detailData.repairRegisterVo?.overTime }}
- </DescriptionsItem>
- <DescriptionsItem label="维修记录">
- {{ detailData.repairRegisterVo?.remark }}
- </DescriptionsItem>
- <DescriptionsItem label="测试工程师">
- {{ detailData.repairTestVo?.sysUserName }}
- </DescriptionsItem>
- <DescriptionsItem label="测试通过时间" :span="2">
- {{ detailData.repairTestVo?.passTime }}
- </DescriptionsItem>
- <DescriptionsItem label="支付方式" :span="3">
- <div v-if="detailData.repairPay">
- <p>{{
- detailData.repairPay.payType == 1
- ? '微信'
- : detailData.repairPay.payType == 2
- ? '支付宝'
- : '银行'
- }}</p>
- <PreviewGroup>
- <Image
- :width="80"
- :height="80"
- v-for="item in detailData.repairPay.payImg"
- :key="item"
- :src="item"
- />
- </PreviewGroup>
- </div>
- </DescriptionsItem>
- <DescriptionsItem style="padding-bottom: 16px" label="支付备注" :span="3">
- {{ detailData.repairPay?.remark }}
- </DescriptionsItem>
- <DescriptionsItem label="回单备注" :span="3">
- <div v-if="detailData.repairCheckAccount">
- <p>{{ detailData.repairCheckAccount.remark }}</p>
- <PreviewGroup>
- <Image
- :width="80"
- :height="80"
- v-for="item in detailData.repairCheckAccount.checkAccountImg"
- :key="item"
- :src="item"
- />
- </PreviewGroup>
- </div>
- </DescriptionsItem>
- <DescriptionsItem label="取回方式" v-if="detailData.customerAddress">
- {{
- detailData.customerAddress.getType == 0
- ? '前台取回'
- : `快递寄回 ${detailData.customerAddress?.getTrackingNum || '暂无单号'}`
- }}</DescriptionsItem
- >
- <DescriptionsItem label="收件信息" :span="2" v-if="detailData.customerAddress">
- {{ detailData.customerAddress.getAddrName }}
- {{ detailData.customerAddress.getAddrPhone }}
- {{ detailData.customerAddress.getAddress }}
- </DescriptionsItem>
- </Descriptions>
- <Descriptions title="单据下载" :column="3" v-if="detailData.repairerVo.status > 20">
- <DescriptionsItem label="报价单" :span="3" v-if="detailData.repairerVo.status > 20">
- <div class="link" @click="dowmFile(0)"> {{ repairId }}报价单.pdf</div>
- </DescriptionsItem>
- <DescriptionsItem label="维修工单" :span="3" v-if="detailData.repairerVo.status > 70">
- <div class="link" @click="dowmFile(1)"> {{ repairId }}维修工单.pdf</div>
- </DescriptionsItem>
- </Descriptions>
- <Descriptions title="客户评价" :column="3" v-if="detailData.repairComment">
- <DescriptionsItem label="评价内容">
- <div class="htmlText" :title="detailData.repairComment.comment">{{
- detailData.repairComment.comment
- }}</div>
- </DescriptionsItem>
- <DescriptionsItem label="评分">
- {{ detailData.repairComment.starRank }}分
- </DescriptionsItem>
- </Descriptions>
- <Descriptions title="备注" :column="3">
- <DescriptionsItem label="备注内容">
- <div class="htmlText" :title="detailData.repairerVo?.remark">{{
- detailData.repairerVo?.remark
- }}</div>
- </DescriptionsItem>
- </Descriptions>
- </div>
- </div>
- <div class="content_right">
- <Timeline>
- <a-timeline>
- <timeline-item
- v-for="(item, indexs) in stepList"
- :color="indexs == 0 ? 'red' : 'green'"
- :key="indexs"
- >
- <div class="timeItem">
- <div class="name">
- <span>{{ item.title || item.remark }}</span>
- </div>
- <div class="status" v-if="item.repairLogId">
- {{ item.subTitle }} <span>{{ item.createTime }}</span>
- </div>
- <div class="status" v-else>
- {{ item.subTitle }}
- </div>
- <div class="itemText" v-if="item.customerAddress">{{
- item.customerAddress.getType == 0
- ? '前台取回'
- : `快递寄回 ${item.customerAddress.getTrackingNum}`
- }}</div>
- <div
- class="itemText htmlText"
- v-if="item.repairRegisterVo"
- :title="item.repairRegisterVo.checkResult"
- >检测结论: {{ item.repairRegisterVo.checkResult }}</div
- >
- <div
- class="itemText htmlText"
- v-if="item.repairRegisterVo"
- :title="item.repairRegisterVo.partNamesStr"
- >所需备件: {{ item.repairRegisterVo.partNamesStr }}</div
- >
- <div
- class="itemText htmlText"
- v-if="item.orderReceiving"
- :title="item.orderReceiving.orderFaultMsg"
- >机器外观: {{ item.orderReceiving.orderFaultMsg }}</div
- >
- <div
- class="itemText htmlText"
- v-if="item.repairTest?.resultInfo"
- :title="item.repairTest?.resultInfo"
- >测试描述: {{ item.repairTest.resultInfo }}</div
- >
- <div
- class="itemText htmlText"
- v-if="item.remark"
- :title="item.remark"
- v-html="item.remark"
- ></div>
- <div class="iamgeList">
- <PreviewGroup>
- <Image
- style="overflow: hidden"
- :width="80"
- :height="80"
- v-for="itemSrc in item.imagesInfo"
- :key="itemSrc"
- :src="itemSrc"
- />
- </PreviewGroup>
- </div>
- </div>
- </timeline-item>
- </a-timeline>
- </Timeline>
- </div>
- </div>
- <div class="bottom_but">
- <a-button type="primary" v-for="item in butList" :key="item" @click="handleBut(item)">
- {{ item }}
- </a-button>
- <a-button type="primary" @click="goBack">
- {{ t('common.back') }}
- </a-button>
- </div>
- <!-- <recoveryModal @update="reload" @register="registerRecovery" /> -->
- <remarksModal @update="reload" @register="registerRemarks" />
- <takingOrdersModel @update="reload" @register="registerTakingOrders" />
- <quoteModel @update="reload" @register="registerQuote" />
- <deliveryModal @update="reload" @register="registerDelivery" />
- <payLogModal @update="reload" @register="registerPayLog" />
- <payLogU8Modal @update="reload" @register="registerPayU8Log" />
- <partsListModal @update="reload" @register="registerParts" />
- <checkModel @update="reload" @register="registerCheck" />
- <addAccessoryModel @update="reload" @register="registerAdd" />
- <outModal @update="reload" @register="registerOut" />
- <reviewModal @update="reload" @register="registerReview" />
- <AccountListModal @update="reload" @register="registerAccount" />
- </div>
- </template>
- <script lang="ts">
- import { defineComponent, ref, onMounted, reactive, h } from 'vue';
- import { useI18n } from '/@/hooks/web/useI18n';
- import { useRouter } from 'vue-router';
- import { useMessage } from '/@/hooks/web/useMessage';
- import { detail, process, detailDownExport } from '/@/api/spares';
- import { detailResult } from '/@/api/spares/model';
- import { useModal } from '/@/components/Modal';
- import printJS from 'print-js';
- // import recoveryModal from './recoveryModal.vue';//录单
- import quoteModel from './quoteModel.vue';
- import deliveryModal from './deliveryModal.vue';
- import AccountListModal from '../Accounting/ListModal.vue';
- import payLogModal from './payLogModal.vue';
- import payLogU8Modal from '../U8Sending/ListModal.vue';
- import takingOrdersModel from './takingOrdersModel.vue';
- import remarksModal from '../spares/remarksModal.vue';
- import checkModel from './checkModel.vue';
- import partsListModal from './partsListModal.vue';
- import outModal from './outModal.vue';
- import reviewModal from './reviewModal.vue';
- import { cloneDeep } from 'lodash-es';
- import addAccessoryModel from './addAccessoryModel.vue';
- import { usePermissionStore } from '/@/store/modules/permission';
- import { BasicTable, useTable, BasicColumn } from '/@/components/Table';
- import { Timeline, TimelineItem, Descriptions, Image } from 'ant-design-vue';
- export default defineComponent({
- name: 'Detail',
- components: {
- Image,
- BasicTable,
- quoteModel,
- deliveryModal,
- payLogModal,
- payLogU8Modal,
- takingOrdersModel,
- AccountListModal,
- remarksModal,
- checkModel,
- partsListModal,
- outModal,
- addAccessoryModel,
- Descriptions: Descriptions,
- DescriptionsItem: Descriptions.Item,
- // Timeline: Timeline,
- TimelineItem: TimelineItem,
- [Timeline.name]: Timeline,
- // [Timeline.Item.name]: Timeline.Item,
- PreviewGroup: Image.PreviewGroup,
- reviewModal,
- },
- setup(props) {
- const router = useRouter();
- const { createMessage, createConfirm } = useMessage();
- const { t } = useI18n();
- const print = ref(null);
- const permissionStore = usePermissionStore();
- const { getCheckPerm } = permissionStore;
- const repairId = ref<string | string[]>(router.currentRoute.value.params.id || '0');
- const detailData = ref<detailResult>({
- customer: {},
- customerAddress: {},
- repairerVo: {},
- RepairTestVo: {},
- repairRegisterVo: {},
- orderReceivingVo: {},
- repairPay: {},
- repairComment: {},
- priceList: [],
- lastRepairId: '',
- repairRegisterVoList: [],
- });
- const priceTotal = ref(0);
- const stepList = ref<any>([]);
- const butList = ref<any>([]);
- onMounted(() => {
- getData();
- });
- let dataSource = reactive<any>([]);
- const columns: BasicColumn[] = [
- {
- title: '备件名称',
- dataIndex: 'name',
- width: 150,
- },
- {
- title: '单价(元)',
- dataIndex: 'price',
- width: 100,
- },
- {
- title: '数量',
- dataIndex: 'count',
- width: 110,
- },
- {
- title: '小计(元)',
- dataIndex: 'total',
- width: 140,
- },
- {
- title: '备注',
- dataIndex: 'remark',
- width: 140,
- },
- ];
- async function enterDialog() {
- // const style = '@page { margin:0mm 10mm } .content_left{ width: calc(100% - 400px) !important} .content{width:100% !important} .content_right{width: 400px !important; float: right;}';
- // const style =
- // '@page {margin:0mm 10mm;width:100%};' +
- // ' @media print { .status{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }} .content_left_info{ width: calc(100% - 400px) !important} .ant-descriptions{width: 400px !important}'; //打印时去掉眉页眉尾
- printJS({
- printable: 'print', // 标签元素id
- type: 'html',
- headerStyle: 'font-weight:400;text-align:center;',
- targetStyles: ['*'],
- // style: style,
- });
- }
- async function getData() {
- const stepRes = await process({ repairId: repairId.value });
- let butTypeList = {
- 0: ['接单'],
- 10: ['检测登记'],
- 20: ['报价'],
- 30: ['修改报价'],
- 40: ['付款登记'],
- 41: ['发件登记'],
- 50: ['备件出库'],
- 60: ['添加备件', '完成维修'],
- 70: ['测试登记'],
- 80: ['付款登记'],
- 82: ['到账登记'],
- 90: ['备件回收'],
- 91: ['备件回收'],
- // 70: ['备件回收'],
- // 80: ['测试登记'],
- // 90: ['付款登记'],
- 100: ['发货登记'],
- };
- let butTypeShow = {
- 0: ['work_orderTakers'],
- 10: ['maintenance_testing'],
- 20: ['work_quotedPrice'],
- 30: ['work_setPrice'],
- 40: ['work_payments'],
- 41: ['U8Sending_register'],
- 50: ['repairspares_out'],
- 60: ['maintenance_add', 'maintenance_finish'],
- 90: ['repairspares_in'],
- 91: ['repairspares_in'],
- 70: ['repair_test'],
- 80: ['work_payments'],
- 82: ['Account_registration'],
- 100: ['work_dispatched'],
- };
- stepList.value = stepRes;
- let res = await detail({ repairId: repairId.value });
- detailData.value = res;
- let butListjh = [];
- if (stepRes[0] && res.haveButton == 1 && res.repairerVo.status != undefined) {
- butTypeList[res.repairerVo.status] &&
- butTypeList[res.repairerVo.status].map((ele, index) => {
- let butKey = butTypeShow[res.repairerVo.status][index];
- if (getCheckPerm(butKey)) {
- butListjh.push(ele);
- }
- });
- }
- butList.value = butListjh;
- let countItem = {
- id: 3,
- remark: null,
- price: null,
- name: '',
- count: '合计(元)',
- total: 0,
- };
- let newdataSource = [];
- res.priceList.map((ele) => {
- let price = ele.discount == 1 ? ele.priceDiscount : ele.price;
- let elePrice = countItem.total + parseFloat(price) * ele.count;
- countItem.total = elePrice;
- newdataSource.push({
- // ...ele,
- count: ele.count,
- name: ele.name,
- price: price,
- id: ele.laborId,
- total: (price * ele.count).toFixed(2),
- remark: ele.remark,
- });
- });
- dataSource = newdataSource;
- priceTotal.value = countItem.total?.toFixed(2);
- countItem.total =
- res.repairerVo.warrantyType == 0 || res.repairerVo.warrantyType == 3
- ? '0.00'
- : priceTotal.value;
- let addItemList = [countItem];
- if (res.repairerVo.warrantyType == 0 || res.repairerVo.warrantyType == 3) {
- addItemList.unshift({
- id: 4,
- price: null,
- name: t(`routes.spares.warrantyType.${res.repairerVo.warrantyType}`),
- count: '',
- total: '-' + priceTotal.value,
- });
- }
- console.log('newdataSource', newdataSource, dataSource, countItem.total, res.priceList);
- if (countItem.total && res.priceList.length) {
- setTableData(cloneDeep([...dataSource, ...addItemList]));
- }
- }
- function goBack() {
- router.go(-1);
- }
- function handleBut(item) {
- console.log('handleBut', item, stepList.value[0].repairStatus);
- let status = detailData.value.repairerVo.status;
- let record = {
- repairId: repairId.value || detailData.value.orderReceivingVo?.repairId,
- cameraSnCode: detailData.value.repairerVo?.cameraSnCode,
- cameraType: detailData.value.repairerVo?.cameraType,
- status: status,
- payAmount: 0,
- };
- if (status == 80 || status == 40) {
- record.payAmount = priceTotal.value;
- }
- let openList = {
- 0: openTakingOrders, //检测登记
- 10: openCheckModal, //检测登记
- 20: openQuoteModal, //报价
- 30: openQuoteModal, //修改报价
- 40: openPayLogModal, //付款登记
- 41: openPayLogU8Modal, //付款登记
- 50: openPartsModal, //备件出库
- 90: openPartsModal, //备件回收
- 91: openPartsModal, //备件回收
- 70: openReviewModal, //测试登记
- 80: openPayLogModal, //付款登记
- 82: registerAccountModal, //付款登记
- 100: openDeliveryModal, //发货登记
- 61: openAddModal, //添加备件
- 62: openOutModal, //完成维修
- };
- console.log('detailData.value.repairerVo', detailData.value.repairerVo.warrantyDate);
- if (status == 60) {
- openList[item == '添加备件' ? 61 : 62](true, {
- ...record,
- warrantyDate: detailData.value.repairerVo?.warrantyDate,
- warrantyType: detailData.value.repairerVo?.warrantyType,
- repairManName: detailData.value.repairRegisterVo?.sysUserName,
- });
- } else {
- openList[status](true, {
- ...record,
- checkResult: detailData.value.repairRegisterVoList?.[0]?.checkResult,
- payImgArray: detailData.value.repairPay?.payImg,
- warrantyDate: detailData.value.repairerVo?.warrantyDate,
- warrantyType: detailData.value.repairerVo?.warrantyType,
- payAmount: detailData.value.payAmount,
- repairManName: detailData.value.repairRegisterVo?.sysUserName,
- });
- }
- }
- function handleSubmit() {
- createMessage.success(t('common.optSuccess'));
- }
- function reload() {
- getData();
- }
- function dowmFile(type) {
- let name = type == 0 ? '报价单' : '维修工单';
- createConfirm({
- iconType: 'warning',
- title: () => h('span', t('common.reminder')),
- content: () => h('span', `是否导出${name}`),
- onOk: async () => {
- console.log('repairId');
- let apiData = {
- repairId: repairId.value,
- name: repairId.value + name,
- type,
- };
- console.log('apiData', apiData);
- await detailDownExport(apiData);
- },
- });
- }
- const [registerParts, { openModal: openPartsModal }] = useModal();
- const [registerReview, { openModal: openReviewModal }] = useModal();
- const [registerAccount, { openModal: registerAccountModal }] = useModal();
- const [registerRecovery, { openModal }] = useModal();
- const [registerCheck, { openModal: openCheckModal }] = useModal();
- const [registerQuote, { openModal: openQuoteModal }] = useModal();
- const [registerPayLog, { openModal: openPayLogModal }] = useModal();
- const [registerPayU8Log, { openModal: openPayLogU8Modal }] = useModal();
- const [registerDelivery, { openModal: openDeliveryModal }] = useModal();
- const [registerTakingOrders, { openModal: openTakingOrders }] = useModal();
- const [registerRemarks, { openModal: openRemarksModal }] = useModal();
- // const [registerRecovery, { openModal }] = useModal();
- const [registerOut, { openModal: openOutModal }] = useModal();
- const [registerAdd, { openModal: openAddModal }] = useModal();
- const [registerTable, { setTableData }] = useTable({
- dataSource: dataSource,
- columns,
- showSummary: true,
- showIndexColumn: false,
- rowKey: 'id',
- pagination: false,
- bordered: true,
- canResize: false,
- });
- return {
- repairId,
- registerParts,
- registerReview,
- registerRecovery,
- registerQuote,
- registerPayLog,
- registerPayU8Log,
- registerAccount,
- registerAccountModal,
- registerDelivery,
- registerTakingOrders,
- registerRemarks,
- registerOut,
- registerCheck,
- registerAdd,
- registerTable,
- handleSubmit,
- goBack,
- handleBut,
- reload,
- detailData,
- butList,
- dataSource,
- stepList,
- dowmFile,
- t,
- enterDialog,
- print,
- };
- },
- });
- </script>
- <style lang="less" scoped>
- .detailPage {
- margin: 20px;
- padding: 20px;
- background-color: #fff;
- .topButton {
- text-align: right;
- }
- .htmlText {
- overflow: hidden;
- text-overflow: ellipsis;
- width: 100%;
- display: -webkit-box;
- -webkit-box-orient: vertical;
- -webkit-line-clamp: 3;
- word-break: break-all;
- }
- .content {
- width: 100%;
- display: flex;
- justify-content: space-between;
- &_right {
- width: 400px;
- padding: 40px 0px 40px 20px;
- .timeItem {
- .status {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .ant-image-img {
- width: 100%;
- height: 100%;
- }
- }
- }
- &_left {
- width: calc(100% - 400px);
- &_info {
- // width: calc(100% - 400px);
- }
- }
- }
- .bottom_but {
- text-align: center;
- button {
- margin: 20px;
- }
- }
- .link {
- color: cornflowerblue;
- cursor: pointer;
- }
- }
- </style>
- <style lang="less">
- .detailPage {
- .ellipsis {
- // .ant-descriptions-item-container{
- // overflow: hidden;
- // white-space: nowrap;
- // text-overflow: ellipsis;
- // }
- }
- .ant-image-img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
- .ant-image {
- margin-right: 10px;
- }
- .content {
- // .content {
- width: 100%;
- display: flex;
- justify-content: space-between;
- &_right {
- width: 400px;
- padding: 40px 0px 40px 20px;
- .timeItem {
- .status {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .ant-image-img {
- width: 100%;
- height: 100%;
- }
- }
- }
- &_left {
- width: calc(100% - 400px);
- &_info {
- // width: calc(100% - 400px);
- }
- }
- }
- }
- </style>
|