| | |
| | | "url": "https://gitee.com/y_project/RuoYi-Vue.git" |
| | | }, |
| | | "dependencies": { |
| | | "@chenfengyuan/vue-qrcode": "^2.0.0", |
| | | "@element-plus/icons-vue": "2.3.1", |
| | | "@vueup/vue-quill": "1.2.0", |
| | | "@vueuse/core": "10.11.0", |
| | | "axios": "0.28.1", |
| | | "clipboard": "2.0.11", |
| | | "echarts": "5.5.1", |
| | | "default-passive-events": "^4.0.0", |
| | | "echarts": "5.5.1", |
| | | "element-china-area-data": "^6.1.0", |
| | | "element-plus": "2.7.6", |
| | | "file-saver": "2.0.5", |
| | |
| | | "jsencrypt": "3.3.2", |
| | | "nprogress": "0.2.0", |
| | | "pinia": "2.1.7", |
| | | "print-js": "^1.6.0", |
| | | "qrcode": "^1.5.4", |
| | | "splitpanes": "3.1.5", |
| | | "vue": "3.4.31", |
| | | "vue-cropper": "1.1.1", |
| | | "vue-qrcode": "^2.2.2", |
| | | "vue-router": "4.4.0", |
| | | "vuedraggable": "4.1.0" |
| | | }, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // å·¡æ£ç®¡ç |
| | | import request from '@/utils/request' |
| | | |
| | | // å·¡æ£ä»»å¡è¡¨è¡¨æ¥è¯¢ |
| | | export function inspectionTaskList(query) { |
| | | return request({ |
| | | url: '/inspectionTask/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | // å·¡æ£ä»»å¡è¡¨æ°å¢ä¿®æ¹ |
| | | export function addOrEditInspectionTask(query) { |
| | | return request({ |
| | | url: '/inspectionTask/addOrEditInspectionTask', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | // å·¡æ£ä»»å¡è¡¨æ°å¢ä¿®æ¹ |
| | | export function delInspectionTask(query) { |
| | | return request({ |
| | | url: '/inspectionTask/delInspectionTask', |
| | | method: 'delete', |
| | | data: query |
| | | }) |
| | | } |
| | |
| | | import DictTag from '@/components/DictTag' |
| | | import {summarizeTable} from "@/utils/summarizeTable.js"; |
| | | import {getCurrentDate} from "@/utils/getCurrentDate.js"; |
| | | import VueQrcode from '@chenfengyuan/vue-qrcode'; |
| | | |
| | | const app = createApp(App) |
| | | |
| | |
| | | app.component('ImagePreview', ImagePreview) |
| | | app.component('RightToolbar', RightToolbar) |
| | | app.component('Editor', Editor) |
| | | app.component('vue-qrcode', VueQrcode) |
| | | |
| | | app.use(router) |
| | | app.use(store) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog :title="operationType === 'add' ? 'æ°å¢å·¡æ£ä»»å¡' : 'ç¼è¾éå®åºåº'" |
| | | v-model="dialogVisitable" width="800px" @close="cancel"> |
| | | <el-form :model="form" :rules="rules" ref="formRef" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä»»å¡åç§°" prop="taskName"> |
| | | <el-input v-model="form.taskName" placeholder="请è¾å
¥ä»»å¡åç§°" maxlength="30" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å°ç¹" prop="port"> |
| | | <el-input v-model="form.port" placeholder="请è¾å
¥å°ç¹" maxlength="30" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å·¡æ£äºº" prop="inspector"> |
| | | <el-input v-model="form.inspector" placeholder="å·¡æ£äºº" maxlength="30" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="夿³¨" prop="remarks"> |
| | | <el-input v-model="form.remarks" placeholder="请è¾å
¥å¤æ³¨" type="textarea" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="cancel">åæ¶</el-button> |
| | | <el-button type="primary" @click="submitForm">ä¿å</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import useUserStore from '@/store/modules/user' |
| | | import {addOrEditInspectionTask} from "@/api/inspectionManagement/index.js"; |
| | | |
| | | const { proxy } = getCurrentInstance() |
| | | const emit = defineEmits() |
| | | const userStore = useUserStore() |
| | | const dialogVisitable = ref(false); |
| | | const operationType = ref('add'); |
| | | const data = reactive({ |
| | | form: { |
| | | taskName: '', |
| | | port: '', |
| | | inspector: '', |
| | | remarks: '', |
| | | }, |
| | | rules: { |
| | | taskName: [{ required: true, message: "请è¾å
¥ä»»å¡åç§°", trigger: "blur" },], |
| | | port: [{ required: true, message: "请è¾å
¥å°ç¹", trigger: "blur" },], |
| | | inspector: [{ required: true, message: "请è¾å
¥å·¡æ£äºº", trigger: "blur" },], |
| | | } |
| | | }) |
| | | |
| | | const { form, rules } = toRefs(data) |
| | | |
| | | // æå¼å¼¹æ¡ |
| | | const openDialog = async (type, row) => { |
| | | dialogVisitable.value = true |
| | | if (type === 'edit') { |
| | | form.value = {...row} |
| | | } |
| | | } |
| | | // æäº¤å并表å |
| | | const submitForm = () => { |
| | | proxy.$refs["formRef"].validate(valid => { |
| | | if (valid) { |
| | | addOrEditInspectionTask(form.value).then(() => { |
| | | cancel() |
| | | proxy.$modal.msgSuccess('æäº¤æå') |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | // å
³éå并表å |
| | | const cancel = () => { |
| | | proxy.resetForm("formRef") |
| | | dialogVisitable.value = false |
| | | emit('closeDia') |
| | | } |
| | | defineExpose({ openDialog }) |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog :title="operationType === 'add' ? 'æ°å¢äºç»´ç ' : 'ç¼è¾äºç»´ç '" |
| | | v-model="dialogVisitable" width="500px" @close="cancel"> |
| | | <el-form :model="form" :rules="rules" ref="formRef" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="设å¤åç§°" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥è®¾å¤åç§°" maxlength="30" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="å°ç¹" prop="taxTrans"> |
| | | <el-input v-model="form.taxTrans" placeholder="请è¾å
¥å°ç¹" maxlength="30"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div> |
| | | <el-button type="primary" @click="submitForm">çæå¹¶æå°äºç»´ç </el-button> |
| | | </div> |
| | | <div v-if="isShowQrCode" class="print-section" ref="qrCodeContainer" id="qrCodeContainer"> |
| | | <vue-qrcode :value="qrCodeValue" :width="qrCodeSize"></vue-qrcode> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import useUserStore from "@/store/modules/user.js"; |
| | | import {reactive, ref} from "vue"; |
| | | import printJS from 'print-js'; // å¼å
¥ print.js |
| | | |
| | | const { proxy } = getCurrentInstance() |
| | | const emit = defineEmits() |
| | | const userStore = useUserStore() |
| | | const dialogVisitable = ref(false); |
| | | const isShowQrCode = ref(false); |
| | | const operationType = ref('add'); |
| | | |
| | | const qrCodeValue = ref('https://example.com'); |
| | | const qrCodeSize = ref(100); |
| | | const data = reactive({ |
| | | form: { |
| | | name: '', |
| | | taxTrans: '', |
| | | }, |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥è®¾å¤åç§°', trigger: 'blur' }], |
| | | taxTrans: [{ required: true, message: '请è¾å
¥å°ç¹', trigger: 'blur' }] |
| | | } |
| | | }) |
| | | const { form, rules } = toRefs(data) |
| | | |
| | | |
| | | // æå¼å¼¹æ¡ |
| | | const openDialog = async (type, row) => { |
| | | dialogVisitable.value = true |
| | | } |
| | | // æäº¤å并表å |
| | | const submitForm = () => { |
| | | proxy.$refs["formRef"].validate(valid => { |
| | | if (valid) { |
| | | // å°è¡¨åæ°æ®è½¬ä¸º JSON å符串ä½ä¸ºäºç»´ç å
容 |
| | | qrCodeValue.value = JSON.stringify(form.value); |
| | | isShowQrCode.value = true; |
| | | |
| | | // å»¶è¿æ§è¡æå°ï¼é¿å
DOM æ´æ°åå°±è°ç¨æå° |
| | | setTimeout(() => { |
| | | printJS({ |
| | | printable: 'qrCodeContainer',//é¡µé¢ |
| | | type: "html",//ææ¡£ç±»å |
| | | maxWidth: 360, |
| | | style: `@page { |
| | | margin:0; |
| | | size: 400px 75px collapse; |
| | | margin-top:3px; |
| | | &:first-of-type{ |
| | | margin-top:0 !important; |
| | | } |
| | | } |
| | | html{ |
| | | zoom:100%; |
| | | } |
| | | @media print{ |
| | | width: 400px; |
| | | height: 75px; |
| | | margin:0; |
| | | }`, |
| | | targetStyles: ["*"], // 使ç¨domçæææ ·å¼ï¼å¾éè¦ |
| | | font_size: '0.20cm', |
| | | }); |
| | | }, 300); |
| | | } |
| | | }) |
| | | } |
| | | // å
³éå并表å |
| | | const cancel = () => { |
| | | proxy.resetForm("formRef") |
| | | dialogVisitable.value = false |
| | | emit('closeDia') |
| | | } |
| | | defineExpose({ openDialog }) |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .print-section { |
| | | text-align: center; |
| | | margin-top: 30px; |
| | | } |
| | | </style> |
| | |
| | | /> |
| | | </div> |
| | | </el-card> |
| | | <form-dia ref="formDia" @closeDia="handleQuery"></form-dia> |
| | | <qr-code-dia ref="qrCodeDia" @closeDia="handleQuery"></qr-code-dia> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {Download, Delete, Plus} from "@element-plus/icons-vue"; |
| | | import {onMounted, ref} from "vue"; |
| | | const { proxy } = getCurrentInstance() |
| | | import Pagination from "@/components/Pagination/index.vue"; |
| | | import ETable from "@/components/Table/ETable.vue"; |
| | | import FormDia from "@/views/inspectionManagement/components/formDia.vue"; |
| | | import QrCodeDia from "@/views/inspectionManagement/components/qrCodeDia.vue"; |
| | | import {delInspectionTask, inspectionTaskList} from "@/api/inspectionManagement/index.js"; |
| | | |
| | | const formDia = ref() |
| | | const qrCodeDia = ref() |
| | | // æ¥è¯¢åæ° |
| | | const queryParams = reactive({ |
| | | supplierName: "", |
| | |
| | | }) |
| | | // å½åæ ç¾ |
| | | const activeTab = ref("task"); |
| | | const tabName = ref("qrCode"); |
| | | const tabName = ref("task"); |
| | | // æ ç¾é¡µæ°æ® |
| | | const tabs = reactive([ |
| | | { name: "task", label: "ä»»å¡ä¸å" }, |
| | |
| | | const pageNum = ref(1); |
| | | const pageSize = ref(10); |
| | | const columns = ref([ |
| | | { prop: "saleDate", label: "é宿¥æ", minWidth: 160 }, |
| | | { prop: "customer", label: "客æ·", minWidth: 120 }, |
| | | { prop: "coal", label: "ç
¤ç§", minWidth: 150 }, |
| | | { prop: "unit", label: "åä½", minWidth: 150 }, |
| | | { prop: "priceIncludingTax", label: "åä»·(å«ç¨)", minWidth: 150 }, |
| | | { prop: "inventoryQuantity", label: "åºåæ°é", minWidth: 120 }, |
| | | { prop: "saleQuantity", label: "é宿°é", minWidth: 120 }, |
| | | { prop: "salePrice", label: "éå®åä»·(å«ç¨)", minWidth: 150 }, |
| | | { prop: "totalAmount", label: "é宿»ä»·(å«ç¨)", minWidth: 120 }, |
| | | { prop: "freight", label: "è¿è´¹", minWidth: 90 }, |
| | | { prop: "taxCoal", label: "è´éç
¤ç¨ç(%)", minWidth: 120 }, |
| | | { prop: "taxTrans", label: "è¿è¾ç¨ç(%)", minWidth: 120 }, |
| | | { prop: "grossProfit", label: "æ¯å©æ¶¦", minWidth: 90 }, |
| | | { prop: "netProfit", label: "å婿¶¦", minWidth: 90 }, |
| | | { prop: "taskName", label: "å·¡æ£ä»»å¡åç§°", minWidth: 160 }, |
| | | { prop: "port", label: "å°ç¹", minWidth: 120 }, |
| | | { prop: "remarks", label: "夿³¨", minWidth: 150 }, |
| | | { prop: "inspector", label: "æ§è¡å·¡æ£äºº", minWidth: 150 }, |
| | | { prop: "registrant", label: "ç»è®°äºº", minWidth: 100 }, |
| | | { prop: "registrationDate", label: "ç»è®°æ¥æ", minWidth: 100 }, |
| | | { prop: "createTime", label: "ç»è®°æ¥æ", minWidth: 100 }, |
| | | ]); |
| | | |
| | | onMounted(() => { |
| | |
| | | getList() |
| | | } |
| | | const getList = () => { |
| | | // tableLoading.value = true; |
| | | |
| | | tableLoading.value = true; |
| | | inspectionTaskList({...queryParams, size: pageSize.value, current: pageNum.value}).then(res => { |
| | | console.log(res) |
| | | tableLoading.value = false; |
| | | tableData.value = res.data.records; |
| | | total.value = res.data.total; |
| | | }) |
| | | }; |
| | | // éç½®æ¥è¯¢ |
| | | const resetQuery = () => { |
| | |
| | | |
| | | // æ°å¢ãç¼è¾ |
| | | const handleAdd = (row) => { |
| | | |
| | | const type = row === undefined ? 'add' : 'edit' |
| | | nextTick(() => { |
| | | if (tabName.value === "task") { |
| | | formDia.value?.openDialog(type, row) |
| | | } else { |
| | | qrCodeDia.value?.openDialog(type, row) |
| | | } |
| | | }) |
| | | }; |
| | | // å é¤ä»»å¡ |
| | | const handleDelete = () => { |
| | |
| | | } |
| | | const deleteIds = selectedRows.value.map(item => item.id); |
| | | proxy.$modal.confirm('æ¯å¦ç¡®è®¤å 餿鿰æ®é¡¹ï¼').then(function() { |
| | | return delSalesRecord(deleteIds) |
| | | return delInspectionTask(deleteIds) |
| | | }).then(() => { |
| | | handleQuery() |
| | | proxy.$modal.msgSuccess("å 餿å") |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog title="ä¸ä¼ " |
| | | v-model="dialogVisitable" width="400px" @close="cancel"> |
| | | <el-form :model="form" ref="formRef" label-width="120px"> |
| | | <el-form-item label="ç产å" prop="fileList0"> |
| | | <el-upload |
| | | v-model:file-list="fileList0" |
| | | ref="fileUpload0" |
| | | :action="uploadFileUrl" |
| | | multiple |
| | | name="files" |
| | | :data="{type: 0}" |
| | | style="width: 100%" |
| | | :headers="headers" |
| | | :before-upload="handleBeforeUpload" |
| | | :on-success="handleUploadSuccess" |
| | | > |
| | | <el-button type="primary">ä¸ä¼ </el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <el-form-item label="ç产å" prop="fileList1"> |
| | | <el-upload |
| | | v-model:file-list="fileList1" |
| | | ref="fileUpload1" |
| | | :action="uploadFileUrl" |
| | | multiple |
| | | name="files" |
| | | :data="{type: 1}" |
| | | style="width: 100%" |
| | | :headers="headers" |
| | | :before-upload="handleBeforeUpload" |
| | | :on-success="handleUploadSuccess1" |
| | | > |
| | | <el-button type="primary">ä¸ä¼ </el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <el-form-item label="ç产é®é¢" prop="fileList2"> |
| | | <el-upload |
| | | v-model:file-list="fileList2" |
| | | ref="fileUpload2" |
| | | :action="uploadFileUrl" |
| | | multiple |
| | | name="files" |
| | | :data="{type: 2}" |
| | | style="width: 100%" |
| | | :headers="headers" |
| | | :before-upload="handleBeforeUpload" |
| | | :on-success="handleUploadSuccess2" |
| | | > |
| | | <el-button type="primary">ä¸ä¼ </el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="cancel">åæ¶</el-button> |
| | | <el-button type="primary" @click="submitForm">ä¿å</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {addOrEditInspectionTask} from "@/api/inspectionManagement/index.js"; |
| | | import {getToken} from "@/utils/auth.js"; |
| | | |
| | | const { proxy } = getCurrentInstance() |
| | | const emit = defineEmits() |
| | | const dialogVisitable = ref(false); |
| | | const data = reactive({ |
| | | form: { |
| | | id: '', |
| | | storageBlobDTO: {} |
| | | }, |
| | | }) |
| | | |
| | | const { form } = toRefs(data) |
| | | const fileList0 = ref([]) |
| | | const fileList1 = ref([]) |
| | | const fileList2 = ref([]) |
| | | const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + '/common/minioUploads'); // ä¸ä¼ æä»¶æå¡å¨å°å |
| | | const headers = ref({ Authorization: "Bearer " + getToken() }); |
| | | |
| | | // æå¼å¼¹æ¡ |
| | | const openDialog = async (row) => { |
| | | dialogVisitable.value = true |
| | | form.value.id = row.id |
| | | } |
| | | // ä¸ä¼ åæ ¡æ£æ ¼å¼åå¤§å° |
| | | function handleBeforeUpload(file) { |
| | | |
| | | return true |
| | | } |
| | | // ä¸ä¼ æååè° |
| | | function handleUploadSuccess(res, file) { |
| | | if (res.code === 200) { |
| | | console.log("ä¸ä¼ æå", res); |
| | | proxy.$modal.msgSuccess("æä»¶ä¸ä¼ æå"); |
| | | console.log('fileList0---', fileList0) |
| | | } else { |
| | | proxy.$modal.msgError(res.msg) |
| | | proxy.$refs.fileUpload0.handleRemove(file) |
| | | } |
| | | } |
| | | function handleUploadSuccess1(res, file) { |
| | | if (res.code === 200) { |
| | | proxy.$modal.msgSuccess("æä»¶ä¸ä¼ æå"); |
| | | } else { |
| | | proxy.$modal.msgError(res.msg) |
| | | proxy.$refs.fileUpload1.handleRemove(file) |
| | | } |
| | | } |
| | | function handleUploadSuccess2(res, file) { |
| | | if (res.code === 200) { |
| | | proxy.$modal.msgSuccess("æä»¶ä¸ä¼ æå"); |
| | | } else { |
| | | proxy.$modal.msgError(res.msg) |
| | | proxy.$refs.fileUpload2.handleRemove(file) |
| | | } |
| | | } |
| | | |
| | | // æäº¤å并表å |
| | | const submitForm = () => { |
| | | proxy.$refs["formRef"].validate(valid => { |
| | | if (valid) { |
| | | // åå§å storageBlobDTO 为ä¸ä¸ªç©ºæ°ç» |
| | | form.value.storageBlobDTO = [] |
| | | // åå¹¶ææ fileList å° storageBlobDTO |
| | | const allFiles = [ |
| | | ...fileList0.value, |
| | | ...fileList1.value, |
| | | ...fileList2.value |
| | | ] |
| | | // å°æä»¶å表èµå¼ç» form |
| | | form.value.storageBlobDTO = allFiles |
| | | // æäº¤æ°æ® |
| | | addOrEditInspectionTask(form.value).then(() => { |
| | | cancel() |
| | | proxy.$modal.msgSuccess('æäº¤æå') |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | // å
³éå并表å |
| | | const cancel = () => { |
| | | proxy.resetForm("formRef") |
| | | dialogVisitable.value = false |
| | | emit('closeDia') |
| | | } |
| | | defineExpose({ openDialog }) |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-card> |
| | | <!-- æ ç¾é¡µ --> |
| | | <el-tabs |
| | | v-model="activeTab" |
| | | class="info-tabs" |
| | | @tab-click="handleTabClick" |
| | | > |
| | | <el-tab-pane |
| | | v-for="tab in tabs" |
| | | :key="tab.name" |
| | | :label="tab.label" |
| | | :name="tab.name" |
| | | /> |
| | | </el-tabs> |
| | | <div> |
| | | <div> |
| | | <el-table ref="table" :data="tableData" height="480" v-loading="tableLoading"> |
| | | <el-table-column label="åºå·" type="index" width="60" align="center" /> |
| | | <el-table-column prop="taskName" label="å·¡æ£ä»»å¡åç§°" :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column prop="port" label="å°ç¹" :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column prop="remarks" label="夿³¨"></el-table-column> |
| | | <el-table-column prop="inspector" label="æ§è¡å·¡æ£äºº"></el-table-column> |
| | | <el-table-column fixed="right" label="æä½"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" @click="handleAdd(scope.row)">ä¸ä¼ </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <pagination |
| | | v-if="total>0" |
| | | :page-num="pageNum" |
| | | :page-size="pageSize" |
| | | :total="total" |
| | | @pagination="handleQuery" |
| | | :layout="'total, prev, pager, next, jumper'" |
| | | /> |
| | | </div> |
| | | </el-card> |
| | | <form-dia ref="formDia" @closeDia="handleQuery"></form-dia> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import Pagination from "@/components/Pagination/index.vue"; |
| | | import {inspectionTaskList} from "@/api/inspectionManagement/index.js"; |
| | | import {onMounted, ref} from "vue"; |
| | | import FormDia from "@/views/inspectionUpload/components/formDia.vue"; |
| | | const formDia = ref() |
| | | // å½åæ ç¾ |
| | | const activeTab = ref("task"); |
| | | const tabName = ref("task"); |
| | | // æ ç¾é¡µæ°æ® |
| | | const tabs = reactive([ |
| | | { name: "task", label: "ä»»å¡ä¸å" }, |
| | | { name: "qrCode", label: "äºç»´ç 管ç" }, |
| | | ]); |
| | | // è¡¨æ ¼ |
| | | const tableData = ref([]); |
| | | const tableLoading = ref(false); |
| | | const total = ref(0); |
| | | const pageNum = ref(1); |
| | | const pageSize = ref(10); |
| | | |
| | | onMounted(() => { |
| | | handleTabClick({ props: { name: "task" } }); |
| | | }); |
| | | // æ ç¾é¡µç¹å» |
| | | const handleTabClick = (tab) => { |
| | | tabName.value = tab.props.name; |
| | | tableData.value = []; |
| | | getList(); |
| | | }; |
| | | // ç¹å»æ¥è¯¢ |
| | | const handleQuery = () => { |
| | | pageNum.value = 1 |
| | | pageSize.value = 10 |
| | | getList() |
| | | } |
| | | const getList = () => { |
| | | tableLoading.value = true; |
| | | inspectionTaskList({size: pageSize.value, current: pageNum.value}).then(res => { |
| | | tableLoading.value = false; |
| | | tableData.value = res.data.records; |
| | | total.value = res.data.total; |
| | | }) |
| | | }; |
| | | // ä¸ä¼ |
| | | const handleAdd = (row) => { |
| | | nextTick(() => { |
| | | formDia.value?.openDialog(row) |
| | | }) |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | import ETable from "@/components/Table/ETable.vue"; |
| | | import Pagination from "@/components/Pagination/index.vue"; |
| | | import FormDia from "@/views/salesOutbound/components/formDia.vue"; |
| | | import {delSalesRecord, salesRecordList} from "../../api/salesOutbound/index.js"; |
| | | import {delSalesRecord, salesRecordList} from "@/api/salesOutbound/index.js"; |
| | | |
| | | const formDia = ref() |
| | | const activeTab = ref("out"); |