| | |
| | | import request from '@/utils/request' |
| | | |
| | | // å页æ¥è¯¢ |
| | | export function listPage(data) { |
| | | export function listPage(params) { |
| | | return request({ |
| | | url: '/lavorIssue/listPage', |
| | | method: 'get', |
| | | data |
| | | params |
| | | }) |
| | | } |
| | | |
| | | // å页æ¥è¯¢ |
| | | export function statistics(params) { |
| | | return request({ |
| | | url: '/lavorIssue/statistics', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | |
| | |
| | | <li v-for="item in todoList" :key="item.id"> |
| | | <div style="display: flex;flex-direction: column;justify-content: space-between;width: 100%;gap: 20px"> |
| | | <div style="display: flex;justify-content: space-between;align-items: center;"> |
| | | <div class="todo-title">æµç¨ç¼å·ï¼{{item.approveId}}</div> |
| | | <div class="todo-division">ç³è¯·é¨é¨ï¼{{item.approveDeptName}}</div> |
| | | <div class="todo-title">å¾
åç¼å·ï¼{{item.approveId}}</div> |
| | | <div class="todo-division">é¨é¨ï¼{{item.approveDeptName}}</div> |
| | | <div class="todo-time">{{item.approveTime}}</div> |
| | | </div> |
| | | <div class="todo-division">审æ¹äºç±ï¼{{item.approveReason}}</div> |
| | | <div class="todo-division">å¾
åäºç±ï¼{{item.approveReason}}</div> |
| | | </div> |
| | | </li> |
| | | </ul> |
| | |
| | | <el-option :label="item.staffName" :value="item.id" v-for="(item,index) in personList" :key="id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å³ä¿ç±»å" prop="dictType"> |
| | | <el-select |
| | | v-model="form.dictType" |
| | | placeholder="è¯·éæ©" |
| | | clearable |
| | | > |
| | | <el-option :label="item.label" :value="item.value" v-for="(item,index) in sys_lavor_issue_type" :key="value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å³ä¿é²å
·" prop="dictId"> |
| | | <el-select |
| | | v-model="form.dictId" |
| | |
| | | <el-option :label="item.label" :value="item.value" v-for="(item,index) in sys_lavor_issue" :key="value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="é¢ç¨æ°é" prop="num"> |
| | | <el-form-item label="åæ¾æ°é" prop="num"> |
| | | <el-input-number :step="1" :min="0" style="width: 100%" |
| | | v-model="form.num" |
| | | placeholder="请è¾å
¥" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="é¢ç¨æ¥æ" prop="adoptedDate"> |
| | | <el-form-item label="è¿åæ¥æ" prop="factoryDate"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="form.adoptedDate" |
| | | v-model="form.factoryDate" |
| | | format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD" |
| | | type="date" |
| | | placeholder="è¯·éæ©æ¥æ" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="åæ¾æ¥æ" prop="issueDate"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="form.issueDate" |
| | | format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD" |
| | | type="date" |
| | |
| | | name: "æ°å¢æ¶å
¥", |
| | | }); |
| | | const { sys_lavor_issue } = proxy.useDict("sys_lavor_issue") |
| | | const { sys_lavor_issue_type } = proxy.useDict("sys_lavor_issue_type") |
| | | const formRef = ref(null); |
| | | const productOptions = ref([]); |
| | | const personList = ref([]); |
| | | const formRules = { |
| | | deptId: [{ required: true, trigger: "blur", message: "请è¾å
¥" }], |
| | | dictType: [{ required: true, trigger: "change", message: "è¯·éæ©" }], |
| | | staffId: [{ required: true, trigger: "blur", message: "请è¾å
¥" }], |
| | | dictId: [{ required: true, trigger: "change", message: "è¯·éæ©" }], |
| | | num: [{ required: true, trigger: "change", message: "è¯·éæ©" }], |
| | | adoptedDate: [{ required: true, trigger: "change", message: "è¯·éæ©" }], |
| | | factoryDate: [{ required: true, trigger: "change", message: "è¯·éæ©" }], |
| | | issueDate: [{ required: true, trigger: "change", message: "è¯·éæ©" }], |
| | | } |
| | | |
| | | const { form, resetForm } = useFormData({ |
| | | deptId: undefined, // |
| | | dictType: undefined, |
| | | staffId: undefined, // |
| | | dictId: undefined, // |
| | | num: undefined, // |
| | | adoptedDate: undefined, |
| | | factoryDate: undefined, |
| | | issueDate: undefined, |
| | | }); |
| | | const getPersonList = () => { |
| | | getStaffOnJob().then(res => { |
| | |
| | | getPersonList(); |
| | | }; |
| | | onMounted(() => { |
| | | console.log(sys_lavor_issue) |
| | | form.deptId = userStore.currentDeptId |
| | | getProductOptions(); |
| | | getPersonList(); |
| | |
| | | <el-form :model="filters" :inline="true"> |
| | | <el-form-item label="åå·¥åç§°:"> |
| | | <el-input |
| | | v-model="filters.supplierName" |
| | | v-model="filters.staffName" |
| | | style="width: 240px" |
| | | placeholder="请è¾å
¥" |
| | | @change="handleQuery" |
| | |
| | | <el-button type="primary" text @click="edit(row)" icon="editPen"> |
| | | ç¼è¾ |
| | | </el-button> |
| | | <el-button type="primary" :disabled="row.adoptedDate ? true : false" text @click="adopted(row)"> |
| | | é¢ç¨ |
| | | </el-button> |
| | | </template> |
| | | </PIMTable> |
| | | </div> |
| | |
| | | |
| | | <script setup> |
| | | import { usePaginationApi } from "@/hooks/usePaginationApi"; |
| | | import { listPage,deleteLedger } from "@/api/lavorissce/ledger"; |
| | | import { listPage,deleteLedger,update } from "@/api/lavorissce/ledger"; |
| | | import { onMounted, getCurrentInstance } from "vue"; |
| | | import Modal from "./Modal.vue"; |
| | | import { ElMessageBox, ElMessage } from "element-plus"; |
| | |
| | | } = usePaginationApi( |
| | | listPage, |
| | | { |
| | | incomeMethod: undefined, |
| | | staffName: '', |
| | | }, |
| | | [ |
| | | { |
| | | label: "å³ä¿åå·", |
| | | align: "center", |
| | | prop: "orderNo", |
| | | }, |
| | | { |
| | | label: "åå·¥åç§°", |
| | | align: "center", |
| | |
| | | align: "center", |
| | | prop: "staffNo" |
| | | }, |
| | | |
| | | { |
| | | label: "å³ä¿ç±»å", |
| | | align: "center", |
| | | prop: "dictTypeName", |
| | | |
| | | }, |
| | | { |
| | | label: "å³ä¿é²å
·", |
| | | align: "center", |
| | |
| | | |
| | | }, |
| | | { |
| | | label: "é¢ç¨æ°é", |
| | | label: "åæ¾æ°é", |
| | | align: "center", |
| | | prop: "num", |
| | | |
| | | }, |
| | | { |
| | | label: "è¿åæ¥æ", |
| | | align: "center", |
| | | prop: "factoryDate", |
| | | |
| | | }, |
| | | { |
| | | label: "åæ¾æ¥æ", |
| | | align: "center", |
| | | prop: "issueDate", |
| | | |
| | | }, |
| | | { |
| | |
| | | multipleList.value = selectionList; |
| | | }; |
| | | |
| | | const adopted = (row) => { |
| | | ElMessageBox.confirm("æ¯å¦ç¡®è®¤é¢ç¨?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }).then(async () => { |
| | | const params = { |
| | | id: row.id, |
| | | adoptedDate: dayjs().format("YYYY-MM-DD") |
| | | } |
| | | const { code } = await update(params); |
| | | if (code == 200) { |
| | | ElMessage({ |
| | | type: "success", |
| | | message: "é¢ç¨æå", |
| | | }); |
| | | getTableData(); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const add = () => { |
| | | modalRef.value.openModal(); |
| | | }; |
| | | const edit = (row) => { |
| | | modalRef.value.loadForm(row); |
| | | }; |
| | | |
| | | /** æç´¢æé®æä½ */ |
| | | const handleQuery = () => { |
| | | getTableData(); |
| | | }; |
| | | const changePage = ({ page, limit }) => { |
| | | pagination.currentPage = page; |
| | |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | console.log(12331) |
| | | filters.entryDate = [ |
| | | dayjs().format("YYYY-MM-DD"), |
| | | dayjs().add(1, "day").format("YYYY-MM-DD"), |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="filters" :inline="true"> |
| | | <el-form-item label="åæ¾å£åº¦:" prop="season"> |
| | | <el-select |
| | | :disabled="filters.issueDate ? true : false" |
| | | style="width: 200px;" |
| | | @change="getList" |
| | | v-model="filters.season" |
| | | placeholder="è¯·éæ©" |
| | | clearable |
| | | > |
| | | <el-option :label="item.label" :value="item.value" v-for="(item,index) in jidu" :key="value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åæ¾æä»½:" prop="issueDate"> |
| | | <el-date-picker |
| | | :disabled="filters.season ? true : false" |
| | | v-model="filters.issueDate" |
| | | @change="getList" |
| | | type="month" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM" |
| | | placeholder="è¯·éæ©æä»½" |
| | | clearable |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="getList">æç´¢</el-button> |
| | | <el-button @click="resetParams">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="table_list"> |
| | | <div class="actions"> |
| | | <div class="head" @click="getList(1)">å·²é¢åå³ä¿æ°é:{{statisticsObj.ylqNum}}</div> |
| | | <div class="head" @click="getList(2)">æªé¢åå³ä¿æ°é: {{ statisticsObj.wlqNum }}</div> |
| | | <div class="head" @click="getList(3)">è¶
æ¶å·²é¢åå³ä¿æ°é: {{statisticsObj.csylqNum}}</div> |
| | | <div class="head" @click="getList(4)">è¶
æ¶æªé¢åå³ä¿æ°é: {{statisticsObj.cswlqNum}}</div> |
| | | </div> |
| | | <PIMTable |
| | | rowKey="id" |
| | | isSelection |
| | | :column="columns" |
| | | :tableData="dataList" |
| | | :page="{ |
| | | current: pagination.currentPage, |
| | | size: pagination.pageSize, |
| | | total: pagination.total, |
| | | }" |
| | | @selection-change="handleSelectionChange" |
| | | @pagination="changePage" |
| | | > |
| | | </PIMTable> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { usePaginationApi } from "@/hooks/usePaginationApi"; |
| | | import { listPage,statistics } from "@/api/lavorissce/ledger"; |
| | | import { onMounted, getCurrentInstance } from "vue"; |
| | | import { ElMessageBox, ElMessage } from "element-plus"; |
| | | import dayjs from "dayjs"; |
| | | |
| | | // è¡¨æ ¼å¤éæ¡éä¸é¡¹ |
| | | const multipleList = ref([]); |
| | | const { proxy } = getCurrentInstance(); |
| | | const modalRef = ref(); |
| | | const filesDia = ref() |
| | | const jidu = ref([ |
| | | { |
| | | value: '1', |
| | | label: '第ä¸å£åº¦' |
| | | }, |
| | | { |
| | | value: '2', |
| | | label: '第äºå£åº¦' |
| | | }, |
| | | { |
| | | value: '3', |
| | | label: '第ä¸å£åº¦' |
| | | }, |
| | | { |
| | | value: '4', |
| | | label: '第åå£åº¦' |
| | | } |
| | | ]) |
| | | |
| | | const { |
| | | filters, |
| | | columns, |
| | | dataList, |
| | | pagination, |
| | | getTableData, |
| | | resetFilters, |
| | | onCurrentChange, |
| | | } = usePaginationApi( |
| | | listPage, |
| | | { |
| | | season: '', |
| | | issueDate: '', |
| | | status: 0 |
| | | }, |
| | | [ |
| | | { |
| | | label: "å³ä¿åå·", |
| | | align: "center", |
| | | prop: "orderNo", |
| | | }, |
| | | { |
| | | label: "åå·¥åç§°", |
| | | align: "center", |
| | | prop: "staffName", |
| | | }, |
| | | { |
| | | label: "åå·¥ç¼å·", |
| | | align: "center", |
| | | prop: "staffNo" |
| | | }, |
| | | |
| | | { |
| | | label: "å³ä¿ç±»å", |
| | | align: "center", |
| | | prop: "dictTypeName", |
| | | |
| | | }, |
| | | { |
| | | label: "å³ä¿é²å
·", |
| | | align: "center", |
| | | prop: "dictName", |
| | | |
| | | }, |
| | | { |
| | | label: "åæ¾æ°é", |
| | | align: "center", |
| | | prop: "num", |
| | | |
| | | }, |
| | | { |
| | | label: "è¿åæ¥æ", |
| | | align: "center", |
| | | prop: "factoryDate", |
| | | |
| | | }, |
| | | { |
| | | label: "åæ¾æ¥æ", |
| | | align: "center", |
| | | prop: "issueDate", |
| | | |
| | | }, |
| | | { |
| | | label: "é¢ç¨æ¥æ", |
| | | align: "center", |
| | | prop: "adoptedDate", |
| | | |
| | | } |
| | | ] |
| | | ); |
| | | const statisticsObj = ref({ |
| | | ylqNum: 0, // å·²é¢åæ°é |
| | | wlqNum: 0, // æªé¢åæ°é |
| | | csylqNum: 0, // è¶
æ¶å·²é¢åæ°é |
| | | cswlqNum: 0 // è¶
æ¶æªé¢åæ°é |
| | | }) |
| | | |
| | | const resetParams = () => { |
| | | resetFilters(); |
| | | getStatistics(); |
| | | }; |
| | | |
| | | // å¤éååä»ä¹ |
| | | const handleSelectionChange = (selectionList) => { |
| | | multipleList.value = selectionList; |
| | | }; |
| | | const getList = (status) => { |
| | | switch (status){ |
| | | case 1: |
| | | filters.status = 1 |
| | | break; |
| | | case 2: |
| | | filters.status = 2 |
| | | break; |
| | | case 3: |
| | | filters.status = 3 |
| | | break; |
| | | case 4: |
| | | filters.status = 4 |
| | | break; |
| | | default: |
| | | filters.status = 0 |
| | | } |
| | | console.log(filters) |
| | | getTableData(); |
| | | getStatistics(); |
| | | }; |
| | | |
| | | /** æç´¢æé®æä½ */ |
| | | const handleQuery = () => { |
| | | page.current = 1; |
| | | getTableData(); |
| | | }; |
| | | const changePage = ({ page, limit }) => { |
| | | pagination.currentPage = page; |
| | | pagination.pageSize = limit; |
| | | onCurrentChange(page); |
| | | }; |
| | | const getStatistics = () => { |
| | | statistics(filters).then(res => { |
| | | statisticsObj.value.cswlqNum = res.data.cswlqNum |
| | | statisticsObj.value.csylqNum = res.data.csylqNum |
| | | statisticsObj.value.ylqNum = res.data.ylqNum |
| | | statisticsObj.value.wlqNum = res.data.wlqNum |
| | | }) |
| | | } |
| | | |
| | | onMounted(() => { |
| | | getList() |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .table_list { |
| | | margin-top: unset; |
| | | } |
| | | .actions { |
| | | display: flex; |
| | | justify-content: space-around; |
| | | align-items: center; |
| | | //margin-top: 20px; |
| | | margin-bottom: 30px; |
| | | } |
| | | .head{ |
| | | cursor: pointer; |
| | | font-size: 18px; |
| | | font-weight: 600; |
| | | } |
| | | </style> |
| | | |