|
@@ -63,9 +63,20 @@
|
|
|
},
|
|
|
{
|
|
|
label: '开票信息',
|
|
|
- ifShow: getCheckPerm('work_mark') && record.status > 80 && record.warrantyType != 0 && record.warrantyType != 3 && record.payAmount != 0 && record.invoiceStatus == 0,
|
|
|
+ ifShow:
|
|
|
+ getCheckPerm('work_mark') &&
|
|
|
+ record.status > 80 &&
|
|
|
+ record.warrantyType != 0 &&
|
|
|
+ record.warrantyType != 3 &&
|
|
|
+ record.payAmount != 0 &&
|
|
|
+ record.invoiceStatus == 0,
|
|
|
onClick: handleInvoice.bind(null, record),
|
|
|
},
|
|
|
+ {
|
|
|
+ label: '签收',
|
|
|
+ ifShow: getCheckPerm('work_mark') && record.status == 110,
|
|
|
+ onClick: handleSignFor.bind(null, record),
|
|
|
+ },
|
|
|
]"
|
|
|
/>
|
|
|
</template>
|
|
@@ -78,6 +89,7 @@
|
|
|
<payLogModal @update="reload" @register="registerPayLog" />
|
|
|
<confirmPriceModal @update="reload" @register="registerConfirmPrice" />
|
|
|
<invoiceModal @update="reload" @register="registerInvoice" />
|
|
|
+ <signForModel @update="reload" @register="registerSignFor" />
|
|
|
<!-- ifShow: getCheckPerm('device-out') && !Boolean(record.outType), -->
|
|
|
</div>
|
|
|
</PageWrapper>
|
|
@@ -105,6 +117,7 @@
|
|
|
import takingOrdersModel from './takingOrdersModel.vue';
|
|
|
import remarksModal from '../spares/remarksModal.vue';
|
|
|
import confirmPriceModal from './confirmPriceModal.vue';
|
|
|
+ import signForModel from './signForModel.vue';
|
|
|
import { useModal } from '/@/components/Modal';
|
|
|
import { useRouter } from 'vue-router';
|
|
|
import { saleOrderList } from '/@/api/spares';
|
|
@@ -121,6 +134,7 @@
|
|
|
payLogModal,
|
|
|
confirmPriceModal,
|
|
|
quoteModel,
|
|
|
+ signForModel,
|
|
|
invoiceModal,
|
|
|
PageWrapper,
|
|
|
[Tabs.name]: Tabs,
|
|
@@ -135,79 +149,90 @@
|
|
|
onMounted(() => {
|
|
|
console.log(1);
|
|
|
});
|
|
|
- const columns: BasicColumn[] = [
|
|
|
- {
|
|
|
- title: '报修日期',
|
|
|
- dataIndex: 'createTime',
|
|
|
- width: 180,
|
|
|
- },
|
|
|
- {
|
|
|
- title: '客户名称',
|
|
|
- dataIndex: 'companyName',
|
|
|
- width: 100,
|
|
|
- },
|
|
|
- {
|
|
|
- title: '产品类型',
|
|
|
- dataIndex: 'cameraType',
|
|
|
- width: 100,
|
|
|
- customRender: ({ record }) => {
|
|
|
- return t(`routes.scene.tableType.${record.cameraType}`);
|
|
|
+ const columns = (val: boolean) => {
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ title: '报修日期',
|
|
|
+ dataIndex: 'createTime',
|
|
|
+ width: 180,
|
|
|
},
|
|
|
- },
|
|
|
- {
|
|
|
- title: '产品SN码',
|
|
|
- dataIndex: 'cameraSnCode',
|
|
|
- width: 120,
|
|
|
- },
|
|
|
- {
|
|
|
- title: '故障描述',
|
|
|
- dataIndex: 'faultMsg',
|
|
|
- width: 100,
|
|
|
- },
|
|
|
- {
|
|
|
- title: '送修方式',
|
|
|
- dataIndex: 'sendType',
|
|
|
- width: 100,
|
|
|
- customRender: ({ record }) => {
|
|
|
- return record.sendType == 0 ? '前台送修' : '快递寄送';
|
|
|
+ {
|
|
|
+ title: '客户名称',
|
|
|
+ dataIndex: 'companyName',
|
|
|
+ width: 100,
|
|
|
},
|
|
|
- },
|
|
|
- {
|
|
|
- title: '快递单号',
|
|
|
- dataIndex: 'sendTrackingNum',
|
|
|
- width: 150,
|
|
|
- },
|
|
|
- {
|
|
|
- title: '状态',
|
|
|
- dataIndex: 'status',
|
|
|
- width: 100,
|
|
|
- customRender: ({ record }) => {
|
|
|
- return t(`routes.spares.tableType.${record.status || 0}`);
|
|
|
+ {
|
|
|
+ title: '产品类型',
|
|
|
+ dataIndex: 'cameraType',
|
|
|
+ width: 100,
|
|
|
+ customRender: ({ record }) => {
|
|
|
+ return t(`routes.scene.tableType.${record.cameraType}`);
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
- {
|
|
|
- title: '工单号',
|
|
|
- dataIndex: 'repairId',
|
|
|
- width: 150,
|
|
|
- },
|
|
|
- {
|
|
|
- title: '需要开票',
|
|
|
- dataIndex: 'invoiceStatus',
|
|
|
- width: 80,
|
|
|
- customRender: ({ record }) => {
|
|
|
- return record.invoiceStatus == 0 ? '否' : '是';
|
|
|
+ {
|
|
|
+ title: '产品SN码',
|
|
|
+ dataIndex: 'cameraSnCode',
|
|
|
+ width: 120,
|
|
|
},
|
|
|
- },
|
|
|
- {
|
|
|
- title: t('common.operating'),
|
|
|
- dataIndex: 'action',
|
|
|
- slots: { customRender: 'action' },
|
|
|
- ifShow: true,
|
|
|
- fixed: 'right',
|
|
|
- flag: 'ACTION',
|
|
|
- width: 240,
|
|
|
- },
|
|
|
- ];
|
|
|
+ {
|
|
|
+ title: '故障描述',
|
|
|
+ dataIndex: 'faultMsg',
|
|
|
+ width: 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '送修方式',
|
|
|
+ dataIndex: 'sendType',
|
|
|
+ width: 100,
|
|
|
+ customRender: ({ record }) => {
|
|
|
+ return record.sendType == 0 ? '前台送修' : '快递寄送';
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '快递单号',
|
|
|
+ dataIndex: 'sendTrackingNum',
|
|
|
+ width: 150,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '状态',
|
|
|
+ dataIndex: 'status',
|
|
|
+ width: 100,
|
|
|
+ customRender: ({ record }) => {
|
|
|
+ return t(`routes.spares.tableType.${record.status || 0}`);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '工单号',
|
|
|
+ dataIndex: 'repairId',
|
|
|
+ width: 150,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '需要开票',
|
|
|
+ dataIndex: 'invoiceStatus',
|
|
|
+ width: 80,
|
|
|
+ customRender: ({ record }) => {
|
|
|
+ return record.invoiceStatus == 0 ? '否' : '是';
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '签收',
|
|
|
+ dataIndex: 'trackingImg',
|
|
|
+ width: 80,
|
|
|
+ ifShow: val,
|
|
|
+ customRender: ({ record }) => {
|
|
|
+ return record.trackingImg && record.trackingImg.length > 0 ? '是' : '否';
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: t('common.operating'),
|
|
|
+ dataIndex: 'action',
|
|
|
+ slots: { customRender: 'action' },
|
|
|
+ ifShow: true,
|
|
|
+ fixed: 'right',
|
|
|
+ flag: 'ACTION',
|
|
|
+ width: 240,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ };
|
|
|
const searchForm: Partial<FormProps> = {
|
|
|
labelWidth: 120,
|
|
|
autoAdvancedLine: 1,
|
|
@@ -275,10 +300,11 @@
|
|
|
const [registerDelivery, { openModal: openDeliveryModal }] = useModal();
|
|
|
const [registerTakingOrders, { openModal: openTakingOrders }] = useModal();
|
|
|
const [registerRemarks, { openModal: openRemarksModal }] = useModal();
|
|
|
+ const [registerSignFor, { openModal: openSignForModal }] = useModal();
|
|
|
const [registerInvoice, { openModal: openInvoiceModal }] = useModal();
|
|
|
- const [registerTable, { reload }] = useTable({
|
|
|
+ const [registerTable, { reload, setColumns }] = useTable({
|
|
|
api: saleOrderList,
|
|
|
- columns: columns,
|
|
|
+ columns: columns(false),
|
|
|
useSearchForm: true,
|
|
|
searchInfo: { statusParam: tableType },
|
|
|
formConfig: searchForm,
|
|
@@ -307,6 +333,9 @@
|
|
|
function handleInvoice(record: Recordable) {
|
|
|
openInvoiceModal(true, record);
|
|
|
}
|
|
|
+ function handleSignFor(record: string) {
|
|
|
+ openSignForModal(true, record);
|
|
|
+ }
|
|
|
function handlePayLog(record: Recordable) {
|
|
|
openPayLogModal(true, record);
|
|
|
}
|
|
@@ -324,6 +353,7 @@
|
|
|
}
|
|
|
function changeTable(val: string) {
|
|
|
tableType.value = val;
|
|
|
+ setColumns(columns(val == 2));
|
|
|
reload();
|
|
|
}
|
|
|
onActivated(() => {
|
|
@@ -337,6 +367,7 @@
|
|
|
registerRemarks,
|
|
|
registerPayLog,
|
|
|
registerInvoice,
|
|
|
+ registerSignFor,
|
|
|
registerDelivery,
|
|
|
registerConfirmPrice,
|
|
|
changeTable,
|
|
@@ -352,6 +383,7 @@
|
|
|
handleRemarks,
|
|
|
handleInvoice,
|
|
|
registerQuote,
|
|
|
+ handleSignFor,
|
|
|
registerRecovery,
|
|
|
};
|
|
|
},
|