¶Ô±ÈÐÂÎļþ |
| | |
| | | import { buildUUID } from '../../../../utils/uuid'; |
| | | //import { ApiAction, ApiActionPage } from '../../model/baseModel'; |
| | | import { genAction, Api } from '../../system'; |
| | | import { useUserStore } from '/@/store/modules/user'; |
| | | import { defHttp } from '/@/utils/http/axios'; |
| | | import { isNullOrEmpty } from '/@/utils/is'; |
| | | import { formatToDateTime } from '/@/utils/dateUtil'; |
| | | |
| | | /* |
| | | * è·åé£è¾¾ä¿¡æ¯ |
| | | */ |
| | | |
| | | export const getListByPage = async (params: any) => { |
| | | let order = '' |
| | | if (params.order != undefined) { |
| | | order = params.order == 'descend' ? (params.field + ' desc') : params.field |
| | | } |
| | | let sqlcmd = '1=1'; |
| | | if (params?.TOOL_CODE != undefined && params?.TOOL_CODE != '') { |
| | | sqlcmd += " And TOOL_CODE like '%" + params?.TOOL_CODE + "%'"; |
| | | } |
| | | |
| | | let option = { |
| | | UserId: useUserStore().getUserInfo.userId as string, |
| | | ByOrg: true, |
| | | OrgCode: useUserStore().getUserInfo.orgCode as string |
| | | } |
| | | if (!isNullOrEmpty(params.page)) { |
| | | const usParams = genAction('SMT_MAINTAIN', { |
| | | QueryAble_T: '', |
| | | where: sqlcmd, |
| | | order: order, |
| | | page: { |
| | | pageAble_T: 'string', |
| | | draw: 1, |
| | | pageIndex: params.page, |
| | | pageSize: params.pageSize, |
| | | } |
| | | }); |
| | | return getListByPageAsync(usParams); |
| | | } else { |
| | | const usParams = genAction('SMT_MAINTAIN', { |
| | | QueryAble_T: '', |
| | | where: sqlcmd |
| | | }); |
| | | return getListByPageAsync(usParams); |
| | | } |
| | | // const rParams = genActionPage('BIZ_ERP_PROD_IN', sqlcmd, params.page, params.pageSize,option); |
| | | // return getFinishedwarehouseListByPageAsync(rParams); |
| | | }; |
| | | async function getListByPageAsync(params: any) { |
| | | const data = await defHttp.post( |
| | | { url: Api.QueryUrl, params }, |
| | | { |
| | | isTransformResponse: false, |
| | | }, |
| | | ); |
| | | let model = {} |
| | | if (isNullOrEmpty(data.Data.page)) { |
| | | model = { |
| | | items: data.Data.Items, |
| | | }; |
| | | } else { |
| | | model = { |
| | | items: data.Data.page.data, |
| | | total: data.Data.page.totals, |
| | | }; |
| | | } |
| | | return model; |
| | | } |
| | | //æ°å¢é£è¾¾ä¿¡æ¯ |
| | | export const Save = async (params: Recordable, isUpdate: boolean, isbaofei: boolean) => { |
| | | const item: any = { |
| | | ID: params.ID, |
| | | CREATE_TIME: params?.CREATE_TIME, |
| | | CREATE_USER: params?.CREATE_USER, |
| | | UPDATE_TIME: params?.UPDATE_TIME, |
| | | UPDATE_USER: params?.UPDATE_USER, |
| | | GHOST_ROW: params?.GHOST_ROW, |
| | | AUTH_ORG: params?.AUTH_ORG, |
| | | AUTH_PROD: params?.AUTH_PROD, |
| | | AUTH_WH: params?.AUTH_WH, |
| | | TOOL_CODE: params?.TOOL_CODE, |
| | | PROJ_CODE: params?.PROJ_CODE, |
| | | RESULT: params?.RESULT, |
| | | REMARK: params?.REMARK, |
| | | }; |
| | | let data; |
| | | |
| | | if (isUpdate) { |
| | | if (isbaofei) { |
| | | item.STATUS = 5; |
| | | } |
| | | const time = new Date(); |
| | | item.UPDATE_TIME = formatToDateTime(time); |
| | | item.UPDATE_USER = useUserStore().getUserInfo.userId as string; |
| | | // regionitem.ORG_CODE = useUserStore().getUserInfo.orgCode as string; |
| | | // regionitem.AUTH_ORG = useUserStore().getUserInfo.orgCode as string; |
| | | data = await defHttp.post( |
| | | { url: Api.UpdateEntity, params: genAction('SMT_MAINTAIN', item) }, |
| | | { |
| | | errorMessageMode: 'none', |
| | | isTransformResponse: false, |
| | | }, |
| | | ); |
| | | } else { |
| | | // const usParams = genAction( |
| | | // 'SMT_SOLDER', |
| | | // "REGION_CODE='" + params.REGION_CODE + "'AND AUTH_ORG='" + regionitem.ORG_CODE + "'", |
| | | // ); |
| | | //var check = await isExist(usParams); |
| | | //console.log('check',check) |
| | | //if (!check.Data) { |
| | | item.ID = buildUUID(); //çæGUID |
| | | item.UPDATE_TIME = formatToDateTime(new Date()); |
| | | item.CREATE_USER = useUserStore().getUserInfo.userId as string; |
| | | item.UPDATE_USER = useUserStore().getUserInfo.userId as string; |
| | | // regionitem.ORG_CODE = useUserStore().getUserInfo.orgCode as string; |
| | | // regionitem.AUTH_ORG = useUserStore().getUserInfo.orgCode as string; |
| | | data = await defHttp.post( |
| | | { url: Api.AddEntity, params: genAction('SMT_MAINTAIN', item) }, |
| | | { |
| | | errorMessageMode: 'none', |
| | | isTransformResponse: false, |
| | | }, |
| | | ); |
| | | //} else { |
| | | // return check.Message; |
| | | //return 'éå¤äº'; |
| | | //} |
| | | } |
| | | return data; |
| | | }; |
| | | //å é¤ |
| | | export const Delete = async (Tool_Id: string) => { |
| | | const usParams = genAction('SMT_MAINTAIN', `ID='${Tool_Id}'`) |
| | | return await defHttp.post( |
| | | { url: Api.DeleteWhere, params: usParams }, |
| | | { |
| | | errorMessageMode: 'none', |
| | | isTransformResponse: false |
| | | } |
| | | ) |
| | | } |
| | | |
| | | //åæ®è¯¦æ
|
| | | export const getDetailListByPage = async (params: any) => { |
| | | let order = '' |
| | | if (params.order != undefined) { |
| | | order = params.order == 'descend' ? (params.field + ' desc') : params.field |
| | | } |
| | | let sqlcmd = '1=1'; |
| | | if (params?.ID != undefined && params?.ID != '') { |
| | | sqlcmd += " And MT_ID like '%" + params?.ID + "%'"; |
| | | } |
| | | if (params?.TOOL_CODE != undefined && params?.TOOL_CODE != '') { |
| | | sqlcmd += " And TOOL_CODE like '%" + params?.TOOL_CODE + "%'"; |
| | | } |
| | | // if (params?.OUTWAREHOUSECODE != undefined && params?.OUTWAREHOUSECODE != '') { |
| | | // sqlcmd += " And OUTWAREHOUSECODE = '" + params?.OUTWAREHOUSECODE + "'"; |
| | | // } |
| | | // if (params?.INWAREHOUSECODE != undefined && params?.INWAREHOUSECODE != '') { |
| | | // sqlcmd += " And INWAREHOUSECODE = '" + params?.INWAREHOUSECODE + "'"; |
| | | // } |
| | | // if (!isNullOrEmpty(params?.LINESTATUS)) { |
| | | // sqlcmd += " And LINESTATUS = '" + params?.LINESTATUS + "'"; |
| | | // } |
| | | var option ={ |
| | | UserId:useUserStore().getUserInfo.userId as string, |
| | | ByOrg:true, |
| | | OrgCode:useUserStore().getUserInfo.orgCode as string |
| | | } |
| | | // const rParams = genActionPage('BIZ_WMS_TRANSFER_DTL', sqlcmd, params.page, params.pageSize,option); |
| | | |
| | | if(!isNullOrEmpty(params.page)){ |
| | | const usParams = genAction('SMT_MT_DTL', { |
| | | QueryAble_T: '', |
| | | where: sqlcmd, |
| | | page: { |
| | | pageAble_T: 'string', |
| | | draw: 1, |
| | | pageIndex: params.page, |
| | | pageSize: params.pageSize, |
| | | } |
| | | }); |
| | | return getDetailListByPageAsync(usParams); |
| | | }else{ |
| | | const usParams = genAction('SMT_MT_DTL', { |
| | | QueryAble_T: '', |
| | | where: sqlcmd, |
| | | }); |
| | | return getDetailListByPageAsync(usParams); |
| | | } |
| | | }; |
| | | async function getDetailListByPageAsync(params: any) { |
| | | const data = await defHttp.post( |
| | | { url: Api.QueryUrl, params }, |
| | | { |
| | | isTransformResponse: false, |
| | | }, |
| | | ); |
| | | let model = {} |
| | | if(isNullOrEmpty(data.Data.page)){ |
| | | model = { |
| | | items: data.Data.Items, |
| | | }; |
| | | }else{ |
| | | model = { |
| | | items: data.Data.page.data, |
| | | total: data.Data.page.totals, |
| | | }; |
| | | } |
| | | |
| | | return model; |
| | | } |
| | | //䏿å表 |
| | | // STATUSs åæ®ç¶æ |
| | | export const optionsListApi = async (params: Recordable) => { |
| | | const usParams = genAction('SMT_MAINTAIN+RESULTs', ''); |
| | | return await defHttp.post( |
| | | { url: Api.urlQueryEnum, params: usParams }, |
| | | { |
| | | errorMessageMode: 'none', |
| | | isTransformResponse: false, |
| | | // apiUrl: globSetting.taskApiUrl |
| | | }, |
| | | ); |
| | | }; |
| | | //ç±»å |
| | | export const optionsListApiType = async (params: Recordable) => { |
| | | const usParams = genAction('V_SMT_TOOL+TYPEs', ''); |
| | | return await defHttp.post( |
| | | { url: Api.urlQueryEnum, params: usParams }, |
| | | { |
| | | errorMessageMode: 'none', |
| | | isTransformResponse: false, |
| | | // apiUrl: globSetting.taskApiUrl |
| | | }, |
| | | ); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <BasicDrawer |
| | | v-bind="$attrs" |
| | | @register="registerDrawer" |
| | | showFooter |
| | | :title="getTitle" |
| | | width="800px" |
| | | @ok="handleSubmit" |
| | | > |
| | | <BasicForm @register="registerForm" /> |
| | | </BasicDrawer> |
| | | </template> |
| | | <script lang="ts"> |
| | | import { defineComponent, ref, computed, unref } from 'vue'; |
| | | import { BasicForm, useForm } from '/@/components/Form/index'; |
| | | import { formSchema } from './smt_mt_maintain.data'; |
| | | import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; |
| | | |
| | | import { Save } from '/@/api/tigerapi/mes/smt/smtmaintain'; |
| | | |
| | | export default defineComponent({ |
| | | name: 'ToolDrawer', |
| | | components: { BasicDrawer, BasicForm }, |
| | | emits: ['success', 'register'], |
| | | setup(_, { emit }) { |
| | | const isUpdate = ref(true); |
| | | const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner((data) => { |
| | | resetFields(); |
| | | setDrawerProps({ confirmLoading: false }); |
| | | isUpdate.value = !!data?.isUpdate; |
| | | if (unref(isUpdate)) { |
| | | setFieldsValue({ |
| | | ...data.record, |
| | | }); |
| | | } |
| | | }); |
| | | const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({ |
| | | labelWidth: 120, |
| | | schemas: formSchema, |
| | | actionColOptions: { |
| | | span: 24, |
| | | }, |
| | | showActionButtonGroup: false, |
| | | }); |
| | | |
| | | const getTitle = computed(() => (!unref(isUpdate) ? 'æ°å¢å·¥å
·ä¿å
»é¡¹ç®' : 'ç¼è¾å·¥å
·ä¿å
»é¡¹ç®')); |
| | | |
| | | async function handleSubmit() { |
| | | try { |
| | | const values = await validate(); |
| | | setDrawerProps({ confirmLoading: true }); |
| | | // TODO custom api |
| | | //ä¿åç©æ |
| | | const apiAction = Save(values, unref(isUpdate),false); |
| | | apiAction.then((action) => { |
| | | if (action.IsSuccessed) { |
| | | closeDrawer(); |
| | | emit('success'); |
| | | } |
| | | }); |
| | | } finally { |
| | | setDrawerProps({ confirmLoading: false }); |
| | | } |
| | | } |
| | | |
| | | return { |
| | | registerDrawer, |
| | | registerForm, |
| | | getTitle, |
| | | handleSubmit, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <BasicTable @register="registerTable"> |
| | | <template #toolbar> |
| | | <a-button color="primary" @click="handleAdd"> æ·»å </a-button> |
| | | <a-button ghost color="primary" @click="aoaToExcel"> å¯¼åº </a-button> |
| | | </template> |
| | | <template #action="{ record }"> |
| | | <TableAction :actions="[ |
| | | { |
| | | icon: 'clarity:note-edit-line', |
| | | tooltip: 'ä¿®æ¹', |
| | | onClick: handleEdit.bind(null, record), |
| | | }, |
| | | { |
| | | icon: 'clarity:info-standard-line', |
| | | tooltip: '详æ
', |
| | | onClick: handleBao.bind(null, record), |
| | | }, |
| | | { |
| | | icon: 'ant-design:delete-outlined', |
| | | tooltip: 'å é¤', |
| | | popConfirm: { |
| | | title: 'æ¯å¦ç¡®è®¤å é¤?', |
| | | placement: 'left', |
| | | confirm: handleDelete.bind(null, record), |
| | | }, |
| | | }, |
| | | ]" /> |
| | | </template> |
| | | </BasicTable> |
| | | <Loading :loading="compState.loading" :tip="compState.tip" /> |
| | | <!-- <WmsItemDrawer @register="registerDrawer" @success="handleSuccess" /> --> |
| | | <MaintainDrawer @register="registerDrawer" @success="handleSuccess" /> |
| | | </div> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { reactive, unref } from 'vue'; |
| | | import { aoaToSheetXlsx } from '/@/components/Excel'; |
| | | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
| | | import MaintainDrawer from './MaintainDrawer.vue'; |
| | | import { useDrawer } from '/@/components/Drawer'; |
| | | import { columns, searchFormSchema } from './smt_mt_maintain.data'; |
| | | import { getListByPage, Save, Delete } from '/@/api/tigerapi/mes/smt/smtmaintain'; |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | import { Loading } from '/@/components/Loading'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | |
| | | const { t } = useI18n(); |
| | | const { createMessage } = useMessage(); |
| | | const [registerDrawer, { openDrawer }] = useDrawer(); |
| | | const go = useGo(); |
| | | const compState = reactive({ |
| | | absolute: false, |
| | | loading: false, |
| | | tip: 'å è½½ä¸...', |
| | | }); |
| | | const [registerTable, { getForm, getPaginationRef, reload }] = useTable({ |
| | | title: 'å·¥å
·ä¿å
»è®°å½', |
| | | api: getListByPage, |
| | | columns, |
| | | formConfig: { |
| | | labelWidth: 120, |
| | | schemas: searchFormSchema, |
| | | }, |
| | | actionColumn: { |
| | | width: 120, |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | slots: { customRender: 'action' }, |
| | | fixed: 'right', //undefined, |
| | | }, |
| | | ellipsis: true, |
| | | useSearchForm: true, |
| | | showTableSetting: false, |
| | | bordered: true, |
| | | showIndexColumn: false, |
| | | }); |
| | | let arr: any[] = []; |
| | | //å¯¼åº |
| | | function aoaToExcel() { |
| | | const totals = getPaginationRef().total |
| | | if (totals < 30000) { |
| | | arr = []; |
| | | compState.loading = true; |
| | | const col = getForm().getFieldsValue() |
| | | getListByPage(col).then((res) => { |
| | | res.items.forEach(element => { |
| | | var TYPE = '' |
| | | switch (element.RESULT) { |
| | | case 0: |
| | | TYPE = 'æ£å¸¸'; |
| | | break; |
| | | case 1: |
| | | TYPE = 'å®å'; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | arr.push({ |
| | | 'å·¥å
·ç¼ç ': element.TOOL_CODE, |
| | | 'ä¿å
»é¡¹ç®ç¼ç ': element.PROJ_CODE, |
| | | 'ç±»å': TYPE, |
| | | '夿³¨': element.REMARK, |
| | | 'å建人': element.CREATE_USER, |
| | | 'å建æ¶é´': element.CREATE_TIME, |
| | | }); |
| | | }); |
| | | const arrHeader = columns.map((column) => column.title); |
| | | const arrData = arr.map((item) => { |
| | | return Object.keys(item).map((key) => item[key]); |
| | | }); |
| | | // ä¿è¯data顺åºä¸headerä¸è´ |
| | | if (arr.length < 30000) { |
| | | aoaToSheetXlsx({ |
| | | data: arrData, |
| | | header: arrHeader, |
| | | filename: 'å·¥å
·ä¿å
»è®°å½.xlsx', |
| | | }); |
| | | } else { |
| | | createMessage.error(t('å¯¼åºæ°æ®ä¸è½è¶
è¿ä¸ä¸æ¡ï¼å¦éè¦æ´å¤ç请è系管çå')); |
| | | } |
| | | |
| | | compState.loading = false; |
| | | |
| | | }) |
| | | |
| | | } else { |
| | | createMessage.error(t('å¯¼åºæ°æ®ä¸è½è¶
è¿ä¸ä¸æ¡ï¼å¦éè¦æ´å¤ç请è系管çå')); |
| | | } |
| | | |
| | | |
| | | } |
| | | //æ·»å |
| | | function handleAdd() { |
| | | openDrawer(true, { |
| | | isUpdate: false, |
| | | }); |
| | | } |
| | | //ç¼è¾ |
| | | function handleEdit(record: any) { |
| | | openDrawer(true, { |
| | | isUpdate: true, |
| | | record |
| | | }); |
| | | } |
| | | function handleSuccess() { |
| | | reload(); |
| | | } |
| | | //æ¥åº |
| | | function handleBao(record: any) { |
| | | go('/maintaindtl/' + record.ID); |
| | | } |
| | | //å é¤ |
| | | function handleDelete(record: any) { |
| | | const apiAction = Delete(record.ID); |
| | | apiAction.then((action) => { |
| | | if (action.IsSuccessed) { |
| | | createMessage.success(t('å·²å é¤')); |
| | | reload(); |
| | | } else { |
| | | createMessage.success(t('å 餿ä½å¤±è´¥')); |
| | | } |
| | | }); |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <PageWrapper |
| | | :title="bt('å·¥å
·ä¿å
»é¡¹ç®èµæ',[BILLCODE])" |
| | | :content="bt('è¿æ¯å·¥å
·ä¿å
»é¡¹ç®è¯¦æ
页é¢ã')" |
| | | contentBackground |
| | | @back="goBack" |
| | | > |
| | | <template #footer> |
| | | <a-tabs default-active-key="detail" v-model:activeKey="currentKey" @tabClick="tabClkcallback"> |
| | | <a-tab-pane key="detail" :tab="bt('åæ®è¯¦æ
')" /> |
| | | </a-tabs> |
| | | </template> |
| | | <div> |
| | | <div v-if="currentKey == 'detail'"> |
| | | <BasicTable @register="detailTable"> |
| | | <template #toolbar> |
| | | <a-button preIcon="OutR|svg" ghost color="success" @click="aoaToExceldtl"> å¯¼åº </a-button> |
| | | </template> |
| | | </BasicTable> |
| | | </div> |
| | | </div> |
| | | <Loading :loading="compState.loading" :tip="compState.tip" /> |
| | | </PageWrapper> |
| | | </template> |
| | | |
| | | <script lang="ts" setup> |
| | | import { aoaToSheetXlsx } from '/@/components/Excel'; |
| | | import { ref,reactive } from 'vue'; |
| | | import { useRoute } from 'vue-router'; |
| | | import { PageWrapper } from '/@/components/Page'; |
| | | import { useTabs } from '/@/hooks/web/useTabs'; |
| | | import { Tabs } from 'ant-design-vue'; |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | //详æ
å表 |
| | | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
| | | import { |
| | | getDetailListByPage, |
| | | } from '/@/api/tigerapi/mes/smt/smtmaintain'; |
| | | import { Loading } from '/@/components/Loading'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import { columns_D, searchFormSchema_D } from './smt_mt_maintain.data'; |
| | | //ATabs: Tabs, ATabPane: Tabs.TabPane |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | const compState = reactive({ |
| | | absolute: false, |
| | | loading: false, |
| | | tip: 'å è½½ä¸...', |
| | | }); |
| | | const ATabs = ref(Tabs); |
| | | const ATabPane = ref(Tabs.TabPane); |
| | | const route = useRoute(); |
| | | var ITEM_CODE = ref(''); |
| | | const go = useGo(); |
| | | |
| | | const { t: bt } = useI18n(''); |
| | | const { createMessage } = useMessage(); |
| | | //è·åJobId |
| | | const ID = ref(route.params?.ID); |
| | | const [detailTable, { getForm: DataDtl, getPaginationRef: DataPDtl }] = useTable({ |
| | | title: bt('åæ®è¯¦æ
å表'), |
| | | api: getDetailListByPage, |
| | | columns: columns_D, |
| | | useSearchForm: true, |
| | | showTableSetting: true, |
| | | bordered: true, |
| | | canResize:true, |
| | | showIndexColumn: false, |
| | | formConfig: { |
| | | labelWidth: 120, |
| | | schemas: searchFormSchema_D, |
| | | }, |
| | | actionColumn: { |
| | | width: 80, |
| | | title: bt('æä½'), |
| | | dataIndex: 'action', |
| | | slots: { customRender: 'action' }, |
| | | fixed: 'right', //undefined, |
| | | }, |
| | | searchInfo: { ID }, |
| | | }); |
| | | |
| | | let arrdtl: any[] = []; |
| | | function aoaToExceldtl() { |
| | | const totals = DataPDtl().total |
| | | if (totals < 30000) { |
| | | arrdtl = []; |
| | | compState.loading = true; |
| | | const col = DataDtl().getFieldsValue() |
| | | //col.BILLCODE = BILLCODE.value |
| | | getDetailListByPage(col).then((res) => { |
| | | res.items.forEach(element => { |
| | | |
| | | arrdtl.push({ |
| | | 'ä¿å
»è®°å½ID': element.MT_ID, |
| | | 'å·¥å
·ç¼ç ': element.TOOL_CODE, |
| | | 'ä¿å
»é¡¹ç®ç¼ç ': element.PROJ_CODE, |
| | | 'ä¿å
»è®°å½å¼1': element.VALUE01, |
| | | 'ä¿å
»è®°å½å¼2': element.VALUE02, |
| | | 'ä¿å
»è®°å½å¼3': element.VALUE03, |
| | | 'ä¿å
»è®°å½å¼4': element.VALUE04, |
| | | 'ä¿å
»è®°å½å¼5': element.VALUE05, |
| | | 'ä¿å
»è®°å½å¼6': element.VALUE06, |
| | | 'ä¿å
»è®°å½å¼7': element.VALUE07, |
| | | 'ä¿å
»è®°å½å¼8': element.VALUE08, |
| | | 'ä¿å
»è®°å½å¼9': element.VALUE09, |
| | | 'ä¿å
»è®°å½å¼10': element.VALUE10, |
| | | 'ä¿å
»è®°å½å¼11': element.VALUE11, |
| | | 'ä¿å
»è®°å½å¼12': element.VALUE12, |
| | | 'ä¿å
»è®°å½å¼13': element.VALUE13, |
| | | 'ä¿å
»è®°å½å¼14': element.VALUE14, |
| | | 'ä¿å
»è®°å½å¼15': element.VALUE15, |
| | | 'ä¿å
»è®°å½å¼16': element.VALUE16, |
| | | 'ä¿å
»è®°å½å¼17': element.VALUE17, |
| | | 'ä¿å
»è®°å½å¼18': element.VALUE18, |
| | | 'ä¿å
»è®°å½å¼19': element.VALUE19, |
| | | 'ä¿å
»è®°å½å¼20': element.VALUE20, |
| | | '夿³¨': element.REMARK, |
| | | 'å建人': element.CREATE_USER, |
| | | 'å建æ¶é´': element.CREATE_TIME, |
| | | }); |
| | | }); |
| | | const arrHeader = columns_D.map((column) => column.title); |
| | | const arrData = arrdtl.map((item) => { |
| | | return Object.keys(item).map((key) => item[key]); |
| | | }); |
| | | // ä¿è¯data顺åºä¸headerä¸è´ |
| | | |
| | | if (arrdtl.length < 30000) { |
| | | aoaToSheetXlsx({ |
| | | data: arrData, |
| | | header: arrHeader, |
| | | filename: 'è°æ¨åæç».xlsx', |
| | | }); |
| | | } else { |
| | | createMessage.error(bt('å¯¼åºæ°æ®ä¸è½è¶
è¿ä¸ä¸æ¡ï¼å¦éè¦æ´å¤ç请è系管çå')); |
| | | } |
| | | }) |
| | | }else{ |
| | | createMessage.error(bt('å¯¼åºæ°æ®ä¸è½è¶
è¿ä¸ä¸æ¡ï¼å¦éè¦æ´å¤ç请è系管çå')); |
| | | } |
| | | compState.loading=false; |
| | | } |
| | | |
| | | |
| | | // æ¤å¤å¯ä»¥å¾å°ç¨æ·ID |
| | | //const BILLCODE = ref(route.params?.BILLCODE.split(',')[1]); |
| | | var currentKey = ref('detail'); |
| | | const { setTitle } = useTabs(); |
| | | // TODO |
| | | // æ¬é¡µä»£ç ä»
使¼ç¤ºï¼å®é
åºå½éè¿userId仿¥å£è·å¾ç¨æ·çç¸å
³èµæ |
| | | |
| | | // 设置Tabçæ é¢ï¼ä¸ä¼å½±å页颿 é¢ï¼ |
| | | setTitle(bt('详æ
ï¼åæ®') + ID.value); |
| | | |
| | | // 页é¢å·¦ä¾§ç¹å»è¿å龿¥æ¶çæä½ |
| | | function goBack() { |
| | | // æ¬ä¾çæææ¶ç¹å»è¿åå§ç»è·³è½¬å°è´¦å·å表页ï¼å®é
åºç¨æ¶å¯è¿åä¸ä¸é¡µ |
| | | go('/Maintain'); |
| | | } |
| | | const tabClkcallback = (val: string) => { |
| | | if (val == 'detail') { |
| | | ITEM_CODE.value = ''; |
| | | } |
| | | }; |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { BasicColumn } from '/@/components/Table'; |
| | | import { FormSchema } from '/@/components/Table'; |
| | | import { optionsListApi,optionsListApiType } from '/@/api/tigerapi/mes/smt/smtmaintain'; |
| | | import { h,unref } from 'vue'; |
| | | import { Tag ,Tooltip} from 'ant-design-vue'; |
| | | import{ useLocale } from '/@/locales/useLocale'; |
| | | |
| | | const { getLocale }=useLocale(); |
| | | |
| | | export const columns: BasicColumn[] = [ |
| | | { |
| | | title: 'å·¥å
·ç¼ç ', |
| | | dataIndex: 'TOOL_CODE', |
| | | width:200, |
| | | sorter: true, |
| | | resizable:true |
| | | }, |
| | | { |
| | | title: 'ä¿å
»é¡¹ç®ç¼ç ', |
| | | dataIndex: 'PROJ_CODE', |
| | | width: 100, |
| | | sorter: true, |
| | | resizable:true |
| | | }, |
| | | { |
| | | title: 'ç±»å', |
| | | dataIndex: 'RESULT', |
| | | width: 100, |
| | | sorter: true, |
| | | resizable: true, |
| | | customRender: ({ record }) => { |
| | | const status = record.RESULT; |
| | | var text = ''; |
| | | var color = ''; |
| | | switch (status) { |
| | | case 0: |
| | | text = 'æ£å¸¸'; |
| | | color = 'green'; |
| | | break; |
| | | case 1: |
| | | text = 'å®å'; |
| | | color = 'blue'; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | return h(Tooltip, { title: 'xxxxxx' }, () => h(Tag, { color: color }, () => text)); |
| | | }, |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | dataIndex: 'REMARK', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'å建人', |
| | | dataIndex: 'CREATE_USER', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | dataIndex: 'CREATE_TIME', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | }, |
| | | { |
| | | title: 'ID', |
| | | dataIndex: 'ID', |
| | | width:200, |
| | | sorter: true, |
| | | resizable:true, |
| | | ifShow:false |
| | | } |
| | | ]; |
| | | |
| | | export const searchFormSchema: FormSchema[] = [ |
| | | { |
| | | field: 'TOOL_CODE', |
| | | label: 'å·¥å
·ç¼ç ', |
| | | component: 'Input', |
| | | colProps: { span: 8 }, |
| | | } |
| | | ]; |
| | | |
| | | //æ°å¢ç»ä»¶export const |
| | | export const formSchema: FormSchema[] = [ |
| | | { |
| | | label: 'å·¥å
·ç¼ç ', |
| | | field: 'TOOL_CODE', |
| | | required: true, |
| | | colProps: { span: 8 }, |
| | | component: 'Input', |
| | | }, |
| | | { |
| | | field: 'ID', |
| | | label: 'ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | label: 'ä¿å
»é¡¹ç®ç¼ç ', |
| | | field: 'PROJ_CODE', |
| | | required: true, |
| | | colProps: { span: 8 }, |
| | | component: 'Input', |
| | | }, |
| | | { |
| | | label: 'ç±»å', |
| | | field: 'RESULT', |
| | | required: true, |
| | | component: 'ApiSelect', |
| | | colProps: { span: 8 }, |
| | | componentProps: { |
| | | api: optionsListApi, |
| | | resultField: 'Data', |
| | | labelField: unref(getLocale)=='zh_CN'?'Desc':'Name', |
| | | valueField: 'Value', |
| | | }, |
| | | }, |
| | | { |
| | | label: '夿³¨', |
| | | field: 'REMARK', |
| | | required: true, |
| | | colProps: { span: 8 }, |
| | | component: 'Input', |
| | | } |
| | | ]; |
| | | //详æ
|
| | | export const columns_D: BasicColumn[] = [ |
| | | { |
| | | title: 'ä¿å
»è®°å½ID', |
| | | dataIndex: 'MT_ID', |
| | | width:200, |
| | | sorter: true, |
| | | resizable:true |
| | | }, |
| | | { |
| | | title: 'å·¥å
·ç¼ç ', |
| | | dataIndex: 'TOOL_CODE', |
| | | width: 100, |
| | | sorter: true, |
| | | resizable:true |
| | | }, |
| | | { |
| | | title: 'ä¿å
»é¡¹ç®ç¼ç ', |
| | | dataIndex: 'PROJ_CODE', |
| | | width: 100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼1', |
| | | dataIndex: 'VALUE01', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼2', |
| | | dataIndex: 'VALUE02', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼3', |
| | | dataIndex: 'VALUE03', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼4', |
| | | dataIndex: 'VALUE04', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼5', |
| | | dataIndex: 'VALUE05', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼6', |
| | | dataIndex: 'VALUE06', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼7', |
| | | dataIndex: 'VALUE07', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼8', |
| | | dataIndex: 'VALUE08', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»é¡¹9', |
| | | dataIndex: 'VALUE09', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼10', |
| | | dataIndex: 'VALUE10', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼11', |
| | | dataIndex: 'VALUE11', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼12', |
| | | dataIndex: 'VALUE12', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼13', |
| | | dataIndex: 'VALUE13', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼14', |
| | | dataIndex: 'VALUE14', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼15', |
| | | dataIndex: 'VALUE15', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼16', |
| | | dataIndex: 'VALUE16', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼17', |
| | | dataIndex: 'VALUE17', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼18', |
| | | dataIndex: 'VALUE18', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼19', |
| | | dataIndex: 'VALUE19', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'ä¿å
»è®°å½å¼20', |
| | | dataIndex: 'VALUE20', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: '夿³¨', |
| | | dataIndex: 'REMARK', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | , |
| | | { |
| | | title: 'å建人', |
| | | dataIndex: 'CREATE_USER', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | dataIndex: 'CREATE_TIME', |
| | | width:100, |
| | | sorter: true, |
| | | resizable:true |
| | | } |
| | | ]; |
| | | |
| | | export const searchFormSchema_D: FormSchema[] = [ |
| | | { |
| | | field: 'TOOL_CODE', |
| | | label: 'å·¥å
·ç¼ç ', |
| | | component: 'Input', |
| | | colProps: { span: 8 }, |
| | | } |
| | | ]; |