¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from "@/utils/request"; |
| | | |
| | | export const getLedgerPage = (params) => { |
| | | return request({ |
| | | url: "/device/ledger/page", |
| | | method: "get", |
| | | params, |
| | | }); |
| | | }; |
| | | export const getLedgerById = (id) => { |
| | | return request({ |
| | | url: `/device/ledger/${id}`, |
| | | method: "get", |
| | | }); |
| | | }; |
| | | |
| | | export const addLedger = (data) => { |
| | | return request({ |
| | | url: "/device/ledger", |
| | | method: "post", |
| | | data, |
| | | }); |
| | | }; |
| | | export const editLedger = (data) => { |
| | | return request({ |
| | | url: "/device/ledger", |
| | | method: "put", |
| | | data, |
| | | }); |
| | | }; |
| | | |
| | | export const delLedger = (id) => { |
| | | return request({ |
| | | url: `/device/ledger/${id}`, |
| | | method: "delete", |
| | | }); |
| | | }; |
| | |
| | | import request from '@/utils/request'
|
| | | import request from "@/utils/request";
|
| | |
|
| | | // æ¥è¯¢å®æ¶ä»»å¡è°åº¦å表
|
| | | export function listJob(query) {
|
| | | return request({
|
| | | url: '/monitor/job/list',
|
| | | method: 'get',
|
| | | params: query
|
| | | })
|
| | | url: "/monitor/job/list",
|
| | | method: "get",
|
| | | params: query,
|
| | | });
|
| | | }
|
| | |
|
| | | // æ¥è¯¢å®æ¶ä»»å¡è°åº¦è¯¦ç»
|
| | | export function getJob(jobId) {
|
| | | return request({
|
| | | url: '/monitor/job/' + jobId,
|
| | | method: 'get'
|
| | | })
|
| | | url: "/monitor/job/" + jobId,
|
| | | method: "get",
|
| | | });
|
| | | }
|
| | |
|
| | | // æ°å¢å®æ¶ä»»å¡è°åº¦
|
| | | export function addJob(data) {
|
| | | return request({
|
| | | url: '/monitor/job',
|
| | | method: 'post',
|
| | | data: data
|
| | | })
|
| | | url: "/monitor/job",
|
| | | method: "post",
|
| | | data: data,
|
| | | });
|
| | | }
|
| | |
|
| | | // ä¿®æ¹å®æ¶ä»»å¡è°åº¦
|
| | | export function updateJob(data) {
|
| | | return request({
|
| | | url: '/monitor/job',
|
| | | method: 'put',
|
| | | data: data
|
| | | })
|
| | | url: "/monitor/job",
|
| | | method: "put",
|
| | | data: data,
|
| | | });
|
| | | }
|
| | |
|
| | | // å é¤å®æ¶ä»»å¡è°åº¦
|
| | | export function delJob(jobId) {
|
| | | return request({
|
| | | url: '/monitor/job/' + jobId,
|
| | | method: 'delete'
|
| | | })
|
| | | url: "/monitor/job/" + jobId,
|
| | | method: "delete",
|
| | | });
|
| | | }
|
| | |
|
| | | // ä»»å¡ç¶æä¿®æ¹
|
| | | export function changeJobStatus(jobId, status) {
|
| | | const data = {
|
| | | jobId,
|
| | | status
|
| | | }
|
| | | status,
|
| | | };
|
| | | return request({
|
| | | url: '/monitor/job/changeStatus',
|
| | | method: 'put',
|
| | | data: data
|
| | | })
|
| | | url: "/monitor/job/changeStatus",
|
| | | method: "put",
|
| | | data: data,
|
| | | });
|
| | | }
|
| | |
|
| | |
|
| | | // 宿¶ä»»å¡ç«å³æ§è¡ä¸æ¬¡
|
| | | export function runJob(jobId, jobGroup) {
|
| | | const data = {
|
| | | jobId,
|
| | | jobGroup
|
| | | }
|
| | | jobGroup,
|
| | | };
|
| | | return request({
|
| | | url: '/monitor/job/run',
|
| | | method: 'put',
|
| | | data: data
|
| | | })
|
| | | url: "/monitor/job/run",
|
| | | method: "put",
|
| | | data: data,
|
| | | });
|
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ref } from "vue"; |
| | | export function useModal(options) { |
| | | const id = ref(); |
| | | const visible = ref(false); |
| | | const loading = ref(false); |
| | | const modalOptions = ref({}); |
| | | |
| | | const openModal = (e) => { |
| | | id.value = e; |
| | | modalOptions.value = { |
| | | title: e ? "ç¼è¾è®¾å¤å°è´¦" : "æ°å¢è®¾å¤å°è´¦", |
| | | content: "ç¡®å®æ§è¡æ¤æä½åï¼", |
| | | confirmText: "ç¡®å®", |
| | | cancelText: "åæ¶", |
| | | ...options, |
| | | }; |
| | | visible.value = true; |
| | | }; |
| | | |
| | | // å
³éæ¨¡ææ¡ |
| | | const closeModal = () => { |
| | | visible.value = false; |
| | | loading.value = false; |
| | | }; |
| | | |
| | | // 确认æä½ |
| | | const handleConfirm = async (callback) => { |
| | | loading.value = true; |
| | | callback(); |
| | | closeModal(); |
| | | }; |
| | | |
| | | return { |
| | | id, |
| | | visible, |
| | | loading, |
| | | modalOptions, |
| | | openModal, |
| | | closeModal, |
| | | handleConfirm, |
| | | }; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-form :model="form" label-width="100px"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="设å¤åç§°" prop="deviceName"> |
| | | <el-input v-model="form.deviceName" placeholder="请è¾å
¥è®¾å¤åç§°" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è§æ ¼åå·" prop="deviceModel"> |
| | | <el-input v-model="form.deviceModel" placeholder="请è¾å
¥è§æ ¼åå·" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¾åºå" prop="supplierName"> |
| | | <el-input v-model="form.supplierName" placeholder="请è¾å
¥ä¾åºå" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="åä½" prop="unit"> |
| | | <el-input v-model="form.unit" placeholder="请è¾å
¥åä½" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ°é" prop="number"> |
| | | <el-input |
| | | v-model="form.number" |
| | | placeholder="请è¾å
¥æ°é" |
| | | type="number" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å«ç¨åä»·" prop="taxIncludingPriceUnit"> |
| | | <el-input |
| | | v-model="form.taxIncludingPriceUnit" |
| | | placeholder="请è¾å
¥å«ç¨åä»·" |
| | | type="number" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å«ç¨æ»ä»·" prop="taxIncludingPriceTotal"> |
| | | <el-input |
| | | v-model="form.taxIncludingPriceTotal" |
| | | placeholder="请è¾å
¥å«ç¨æ»ä»·" |
| | | type="number" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ç¨ç" prop="taxRate"> |
| | | <el-input |
| | | v-model="form.taxRate" |
| | | placeholder="请è¾å
¥ç¨ç" |
| | | type="number" |
| | | > |
| | | <template #append> % </template> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸å«ç¨æ»ä»·" prop="unTaxIncludingPriceTotal"> |
| | | <el-input |
| | | v-model="form.unTaxIncludingPriceTotal" |
| | | placeholder="请è¾å
¥ä¸å«ç¨æ»ä»·" |
| | | type="number" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="å½å
¥äºº" prop="createUser"> |
| | | <el-input v-model="form.createUser" placeholder="请è¾å
¥å½å
¥äºº" /> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å½å
¥æ¥æ" prop="createTime"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="form.createTime" |
| | | format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | type="date" |
| | | placeholder="è¯·éæ©å½å
¥æ¥æ" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import useFormData from "@/hooks/useFormData"; |
| | | // import useUserStore from "@/store/modules/user"; |
| | | import { getLedgerById } from "@/api/equipmentManagement/ledger"; |
| | | import dayjs from "dayjs"; |
| | | |
| | | defineOptions({ |
| | | name: "设å¤å°è´¦è¡¨å", |
| | | }); |
| | | |
| | | const { form, resetForm } = useFormData({ |
| | | deviceName: undefined, // 设å¤åç§° |
| | | deviceModel: undefined, // è§æ ¼åå· |
| | | supplierName: undefined, // ä¾åºå |
| | | unit: undefined, // åä½ |
| | | number: undefined, // æ°é |
| | | taxIncludingPriceUnit: undefined, // å«ç¨åä»· |
| | | taxIncludingPriceTotal: undefined, // å«ç¨æ»ä»· |
| | | taxRate: undefined, // ç¨ç |
| | | unTaxIncludingPriceTotal: undefined, // ä¸å«ç¨æ»ä»· |
| | | // createUser: useUserStore().nickName, // å½å
¥äºº |
| | | createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), // å½å
¥æ¥æ |
| | | }); |
| | | |
| | | const loadForm = async (id) => { |
| | | const { code, data } = await getLedgerById(id); |
| | | if (code == 200) { |
| | | form.deviceName = data.deviceName; |
| | | form.deviceModel = data.deviceModel; |
| | | form.supplierName = data.supplierName; |
| | | form.unit = data.unit; |
| | | form.number = data.number; |
| | | form.taxIncludingPriceUnit = data.taxIncludingPriceUnit; |
| | | form.taxIncludingPriceTotal = data.taxIncludingPriceTotal; |
| | | form.taxRate = data.taxRate; |
| | | form.unTaxIncludingPriceTotal = data.unTaxIncludingPriceTotal; |
| | | form.createTime = data.createTime; |
| | | } |
| | | }; |
| | | |
| | | defineExpose({ |
| | | form, |
| | | loadForm, |
| | | }); |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog :title="modalOptions.title" v-model="visible"> |
| | | <Form ref="formRef"></Form> |
| | | <template #footer> |
| | | <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button> |
| | | <el-button type="primary" @click="sendForm" :loading="loading"> |
| | | {{ modalOptions.confirmText }} |
| | | </el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { useModal } from "@/hooks/useModal"; |
| | | import { addLedger, editLedger } from "@/api/equipmentManagement/ledger"; |
| | | import Form from "./Form.vue"; |
| | | import { ElMessage } from "element-plus"; |
| | | |
| | | defineOptions({ |
| | | name: "设å¤å°è´¦æ°å¢ç¼è¾", |
| | | }); |
| | | |
| | | const emits = defineEmits(["success"]); |
| | | |
| | | const formRef = ref(); |
| | | const { |
| | | id, |
| | | visible, |
| | | loading, |
| | | openModal, |
| | | modalOptions, |
| | | handleConfirm, |
| | | closeModal, |
| | | } = useModal(); |
| | | |
| | | const sendForm = async () => { |
| | | loading.value = true; |
| | | const { code } = id |
| | | ? await editLedger({ id: id.value, ...formRef.value.form }) |
| | | : await addLedger(formRef.value.form); |
| | | if (code == 200) { |
| | | emits("success"); |
| | | ElMessage({ message: "æä½æå", type: "success" }); |
| | | closeModal(); |
| | | } else { |
| | | loading.value = false; |
| | | } |
| | | }; |
| | | |
| | | const loadForm = async (id) => { |
| | | openModal(id); |
| | | await nextTick(); |
| | | formRef.value.loadForm(id); |
| | | }; |
| | | |
| | | defineExpose({ |
| | | openModal, |
| | | loadForm, |
| | | }); |
| | | </script> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="filters" :inline="true"> |
| | | <!-- <el-form :model="filters" :inline="true"> |
| | | <el-form-item label="æç´¢"> |
| | | <el-input |
| | | v-model="filters.searchText" |
| | |
| | | <el-button type="primary" @click="getTableData">æç´¢</el-button> |
| | | <el-button @click="resetFilters">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-form> --> |
| | | <div class="table_list"> |
| | | <div class="actions"> |
| | | <div></div> |
| | | <div> |
| | | <el-button type="primary" @click="add" icon="Plus"> æ°å¢ </el-button> |
| | | <el-button @click="handleOut" icon="download">导åº</el-button> |
| | | </div> |
| | | </div> |
| | | <PIMTable |
| | | :column="columns" |
| | | :tableData="dataList" |
| | |
| | | total: pagination.total, |
| | | }" |
| | | > |
| | | <template #operation> |
| | | <el-button type="primary" text>ç¼è¾</el-button> |
| | | <el-button type="danger" text>å é¤</el-button> |
| | | <template #operation="{ row }"> |
| | | <el-button type="primary" text @click="edit(row.id)" icon="editPen"> |
| | | ç¼è¾ |
| | | </el-button> |
| | | <el-button |
| | | type="danger" |
| | | text |
| | | icon="delete" |
| | | @click="deleteRow(row.id)" |
| | | > |
| | | å é¤ |
| | | </el-button> |
| | | </template> |
| | | </PIMTable> |
| | | </div> |
| | | <Modal ref="modalRef" @success="getTableData"></Modal> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { usePaginationApi } from "@/hooks/usePaginationApi"; |
| | | import { Search } from "@element-plus/icons-vue"; |
| | | import { getLedgerPage, delLedger } from "@/api/equipmentManagement/ledger"; |
| | | import { onMounted } from "vue"; |
| | | import Modal from "./Modal.vue"; |
| | | import { ElMessageBox } from "element-plus"; |
| | | |
| | | defineOptions({ |
| | | name: "设å¤å°è´¦", |
| | | }); |
| | | |
| | | const modalRef = ref(); |
| | | const { filters, columns, dataList, pagination, getTableData, resetFilters } = |
| | | usePaginationApi( |
| | | () => {}, |
| | | getLedgerPage, |
| | | { |
| | | searchText: undefined, |
| | | }, |
| | |
| | | { |
| | | label: "设å¤åç§°", |
| | | align: "center", |
| | | prop: "deviceName", |
| | | }, |
| | | { |
| | | label: "è§æ ¼åå·", |
| | | align: "center", |
| | | prop: "deviceModel", |
| | | }, |
| | | { |
| | | label: "ä¾åºå", |
| | | align: "center", |
| | | prop: "supplierName", |
| | | }, |
| | | { |
| | | label: "åä½", |
| | | align: "center", |
| | | prop: "unit", |
| | | }, |
| | | { |
| | | label: "æ°é", |
| | | align: "center", |
| | | prop: "number", |
| | | }, |
| | | { |
| | | label: "å«ç¨åä»·", |
| | | align: "center", |
| | | prop: "taxIncludingPriceUnit", |
| | | }, |
| | | { |
| | | label: "å«ç¨æ»ä»·", |
| | | align: "center", |
| | | prop: "taxIncludingPriceTotal", |
| | | }, |
| | | { |
| | | label: "ç¨ç", |
| | | align: "center", |
| | | prop: "taxRate", |
| | | }, |
| | | { |
| | | label: "ä¸å«ç¨æ»ä»·", |
| | | align: "center", |
| | | prop: "unTaxIncludingPriceTotal", |
| | | }, |
| | | { |
| | | label: "å½å
¥äºº", |
| | | align: "center", |
| | | prop: "createUser", |
| | | }, |
| | | { |
| | | label: "å½å
¥æ¥æ", |
| | | align: "center", |
| | | prop: "createTime", |
| | | }, |
| | | { |
| | | fixed: "right", |
| | | label: "æä½", |
| | | dataType: "slot", |
| | | slot: "operation", |
| | | align: "center", |
| | | width: "150px", |
| | | width: "200px", |
| | | }, |
| | | ] |
| | | ); |
| | | |
| | | const add = () => { |
| | | modalRef.value.openModal(); |
| | | }; |
| | | const edit = (id) => { |
| | | modalRef.value.loadForm(id); |
| | | }; |
| | | |
| | | const deleteRow = (id) => { |
| | | ElMessageBox.confirm("æ¤æä½å°æ°¸ä¹
å é¤è¯¥æä»¶, æ¯å¦ç»§ç»?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }).then(async () => { |
| | | const { code } = await delLedger(id); |
| | | if (code == 200) { |
| | | ElMessage({ |
| | | type: "success", |
| | | message: "å 餿å", |
| | | }); |
| | | getTableData(); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | const handleOut = () => { |
| | | ElMessageBox.confirm("éä¸çå
容å°è¢«å¯¼åºï¼æ¯å¦ç¡®è®¤å¯¼åºï¼", "导åº", { |
| | | confirmButtonText: "确认", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | proxy.download( |
| | | `/device/ledger/export?ids=${ids}`, |
| | | {}, |
| | | "设å¤å°è´¦æ¡£æ¡.xlsx" |
| | | ); |
| | | }) |
| | | .catch(() => { |
| | | proxy.$modal.msg("已忶"); |
| | | }); |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | getTableData(); |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .table_list { |
| | | margin-top: unset; |
| | | } |
| | | .actions { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | } |
| | | </style> |
| | |
| | | <el-table-column label="å
¥åºæ°é" prop="entryPersonName" width="90" show-overflow-tooltip /> |
| | | <el-table-column label="å«ç¨åä»·" prop="entryDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="å«ç¨æ»ä»·" prop="executionDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="ç¨ç" prop="executionDate" width="80" show-overflow-tooltip /> |
| | | <el-table-column label="ç¨ç(%)" prop="executionDate" width="80" show-overflow-tooltip /> |
| | | <el-table-column label="ä¸å«ç¨æ»ä»·" prop="executionDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="å
¥åºäºº" prop="executionDate" width="80" show-overflow-tooltip /> |
| | | <el-table-column fixed="right" label="æä½" min-width="60" align="center"> |
| | |
| | | <el-table-column label="å
¥åºæ°é" prop="entryPersonName" width="90" show-overflow-tooltip /> |
| | | <el-table-column label="å«ç¨åä»·" prop="entryDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="å«ç¨æ»ä»·" prop="executionDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="ç¨ç" prop="executionDate" width="80" show-overflow-tooltip /> |
| | | <el-table-column label="ç¨ç(%)" prop="executionDate" width="80" show-overflow-tooltip /> |
| | | <el-table-column label="ä¸å«ç¨æ»ä»·" prop="executionDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="å
¥åºäºº" prop="executionDate" width="80" show-overflow-tooltip /> |
| | | <el-table-column fixed="right" label="æä½" min-width="60" align="center"> |
| | |
| | | <el-table-column label="åºåºæ°é" prop="entryPersonName" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="å«ç¨åä»·" prop="entryDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="å«ç¨æ»ä»·" prop="executionDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="ç¨ç" prop="executionDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="ç¨ç(%)" prop="executionDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="ä¸å«ç¨æ»ä»·" prop="executionDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="å
¥åºäºº" prop="executionDate" width="80" show-overflow-tooltip /> |
| | | <el-table-column fixed="right" label="æä½" min-width="60" align="center"> |
| | |
| | | clearable |
| | | prefix-icon="Search" |
| | | /> |
| | | <el-button type="primary" @click="handleQuery" style="margin-left: 10px" |
| | | >æç´¢</el-button |
| | | <el-button |
| | | type="primary" |
| | | @click="handleQuery" |
| | | style="margin-left: 10px" |
| | | > |
| | | æç´¢ |
| | | </el-button> |
| | | </div> |
| | | <div> |
| | | <el-button type="primary" @click="handleAdd">æ°å¢ç»è®°</el-button> |
| | |
| | | <el-table-column |
| | | label="ååéé¢(å
)" |
| | | prop="contractAmount" |
| | | show-overflow-tooltip |
| | | :formatter="formattedNumber" |
| | | /> |
| | | <el-table-column |
| | | label="å·²å¼ç¥¨éé¢(å
)" |
| | | prop="receiptPaymentAmount" |
| | | show-overflow-tooltip |
| | | :formatter="formattedNumber" |
| | | /> |
| | | <el-table-column |
| | | label="å¾
å¼ç¥¨éé¢(å
)" |
| | | prop="unReceiptPaymentAmount" |
| | | show-overflow-tooltip |
| | | :formatter="formattedNumber" |
| | | /> |
| | |
| | | }; |
| | | // 主表åè®¡æ¹æ³ |
| | | const summarizeMainTable = (param) => { |
| | | return proxy.summarizeTable(param, ["contractAmount"], { |
| | | return proxy.summarizeTable( |
| | | param, |
| | | ["contractAmount", "receiptPaymentAmount", "unReceiptPaymentAmount"], |
| | | { |
| | | ticketsNum: { noDecimal: true }, // ä¸ä¿çå°æ° |
| | | futureTickets: { noDecimal: true }, // ä¸ä¿çå°æ° |
| | | }); |
| | | } |
| | | ); |
| | | }; |
| | | // å表åè®¡æ¹æ³ |
| | | const summarizeChildrenTable = (param) => { |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="仿¬¾æ¥æï¼" prop="paymentDate"> |
| | | <el-date-picker |
| | | disabled |
| | | style="width: 100%" |
| | | v-model="form.paymentDate" |
| | | value-format="YYYY-MM-DD" |
| | |
| | | show-overflow-tooltip |
| | | :formatter="formattedNumber" |
| | | /> |
| | | <el-table-column label="ç¨ç%" prop="taxRate" show-overflow-tooltip /> |
| | | <el-table-column label="ç¨ç(%)" prop="taxRate" show-overflow-tooltip /> |
| | | <el-table-column |
| | | label="å½å
¥äºº" |
| | | prop="invoicePerson" |
| | |
| | | <el-table-column label="è§æ ¼åå·" prop="specificationModel" /> |
| | | <el-table-column label="åä½" prop="unit" width="70" /> |
| | | <el-table-column label="æ°é" prop="quantity" width="70" /> |
| | | <el-table-column label="ç¨ç" prop="taxRate" width="70" /> |
| | | <el-table-column label="ç¨ç(%)" prop="taxRate" width="70" /> |
| | | <el-table-column |
| | | label="å«ç¨åä»·(å
)" |
| | | prop="taxInclusiveUnitPrice" |
| | |
| | | <el-table-column label="è§æ ¼åå·" prop="specificationModel" /> |
| | | <el-table-column label="åä½" prop="unit" /> |
| | | <el-table-column label="æ°é" prop="quantity" width="70" /> |
| | | <el-table-column label="ç¨ç" prop="taxRate" width="70" /> |
| | | <el-table-column label="ç¨ç(%)" prop="taxRate" width="70" /> |
| | | <el-table-column |
| | | label="å«ç¨åä»·(å
)" |
| | | prop="taxInclusiveUnitPrice" |
| | |
| | | <el-form :inline="true" :model="searchForm" style="width: 100%"> |
| | | <el-row justify="space-between"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="忬¾ç»è®°"> |
| | | <el-input |
| | | v-model="searchForm.searchText" |
| | | placeholder="è¾å
¥å®¢æ·åç§°/ååå·æç´¢" |
| | | clearable |
| | | prefix-icon="Search" |
| | | @change="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-checkbox |
| | | v-model="searchForm.status" |
| | | label="䏿¾ç¤ºå¾
忬¾ä¸º0" |
| | | @change="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="客æ·åç§°"> |
| | | <el-input |
| | | v-model="searchForm.customerName" |
| | |
| | | @change="handleQuery" |
| | | clearable |
| | | prefix-icon="Search" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-checkbox |
| | | v-model="searchForm.status" |
| | | label="䏿¾ç¤ºå¾
忬¾ä¸º0" |
| | | @change="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | show-overflow-tooltip |
| | | :formatter="formattedNumber" |
| | | /> |
| | | <el-table-column label="ç¨ç" prop="taxRate" show-overflow-tooltip /> |
| | | <el-table-column label="ç¨ç(%)" prop="taxRate" show-overflow-tooltip /> |
| | | <el-table-column |
| | | label="忬¾éé¢(å
)" |
| | | prop="receiptPaymentAmountTotal" |
| | |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | proxy.download("/receiptPayment/export", {}, "忬¾ç»è®°æ¡£æ¡.xlsx"); |
| | | const ids = selectedRows.value.map((item) => item.id); |
| | | proxy.download( |
| | | `/receiptPayment/export`, |
| | | { ids: `${ids}` }, |
| | | "忬¾ç»è®°æ¡£æ¡.xlsx" |
| | | ); |
| | | }) |
| | | .catch(() => { |
| | | proxy.$modal.msg("已忶"); |