| | |
| | | url: '/sales/ledger/getAmountHalfYear', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 协同待审批和报修待办事项 |
| | | export const approveAndDeviceTodos = () => { |
| | | return request({ |
| | | url: '/home/approveAndDeviceTodos', |
| | | method: 'get' |
| | | }) |
| | | } |
| | |
| | | const handleDelete = () => { |
| | | let ids = []; |
| | | if (selectedRows.value.length > 0) { |
| | | // 检查是否有他人维护的数据 |
| | | const unauthorizedData = selectedRows.value.filter(item => item.checkUserId !== userStore.id); |
| | | if (unauthorizedData.length > 0) { |
| | | proxy.$modal.msgWarning("不可删除他人维护的数据"); |
| | | return; |
| | | } |
| | | ids = selectedRows.value.map((item) => item.id); |
| | | } else { |
| | | proxy.$modal.msgWarning("请选择数据"); |
| | |
| | | const handleDelete = () => { |
| | | let ids = []; |
| | | if (selectedRows.value.length > 0) { |
| | | // 检查是否有他人维护的数据 |
| | | const unauthorizedData = selectedRows.value.filter(item => item.userId !== userStore.id); |
| | | if (unauthorizedData.length > 0) { |
| | | proxy.$modal.msgWarning("不可删除他人维护的数据"); |
| | | return; |
| | | } |
| | | ids = selectedRows.value.map((item) => item.id); |
| | | } else { |
| | | proxy.$modal.msgWarning("请选择数据"); |
| | |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="保养结果"> |
| | | <el-select v-model="form.maintenanceResult" placeholder="请选择保养结果"> |
| | | <!-- <el-select v-model="form.maintenanceResult" placeholder="请选择保养结果"> |
| | | <el-option label="完好" :value="1"></el-option> |
| | | <el-option label="维修" :value="0"></el-option> |
| | | </el-select> |
| | | </el-select> --> |
| | | <el-input |
| | | v-model="form.maintenanceResult" |
| | | placeholder="请输入保养结果" |
| | | type="text" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </template> |
| | |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="录入人"> |
| | | <el-select |
| | | v-model="form.createUser" |
| | | placeholder="请选择" |
| | | filterable |
| | | default-first-option |
| | | :reserve-keyword="false" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="item in userList" |
| | | :key="item.userId" |
| | | :label="item.userName" |
| | | :value="item.userId" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="计划保养日期"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | |
| | | import { getDeviceLedger } from "@/api/equipmentManagement/ledger"; |
| | | import { onMounted } from "vue"; |
| | | import dayjs from "dayjs"; |
| | | import { userListNoPage } from "@/api/system/user.js"; |
| | | |
| | | defineOptions({ |
| | | name: "计划表单", |
| | |
| | | deviceName: undefined, // 设备名称 |
| | | deviceModel: undefined, // 规格型号 |
| | | maintenancePlanTime: undefined, // 计划保养日期 |
| | | createUser: undefined, // 录入人 |
| | | }); |
| | | |
| | | const setDeviceModel = (id) => { |
| | |
| | | form.deviceLedgerId = data.deviceLedgerId; |
| | | form.deviceName = data.deviceName; |
| | | form.deviceModel = data.deviceModel; |
| | | form.createUser = Number(data.createUser); |
| | | form.maintenancePlanTime = dayjs(data.maintenancePlanTime).format( |
| | | "YYYY-MM-DD HH:mm:ss" |
| | | ); |
| | | }; |
| | | |
| | | // 用户列表 |
| | | const userList = ref([]); |
| | | |
| | | const loadForm = () => {}; |
| | | |
| | | onMounted(() => { |
| | | loadDeviceName(); |
| | | userListNoPage().then((res) => { |
| | | userList.value = res.data; |
| | | }); |
| | | }); |
| | | |
| | | defineExpose({ |
| | |
| | | @pagination="changePage" |
| | | > |
| | | <template #maintenanceResultRef="{ row }"> |
| | | <el-tag v-if="row.maintenanceResult === 1" type="success"> |
| | | <div>{{ row.maintenanceResult || '-' }}</div> |
| | | <!-- <el-tag v-if="row.maintenanceResult === 1" type="success"> |
| | | 完好 |
| | | </el-tag> |
| | | <el-tag v-if="row.maintenanceResult === 0" type="danger"> |
| | | 维修 |
| | | </el-tag> |
| | | </el-tag> --> |
| | | </template> |
| | | <template #statusRef="{ row }"> |
| | | <el-tag v-if="row.status === 1" type="success">完结</el-tag> |
| | |
| | | <div class="main-panel"> |
| | | <div style="display: flex;justify-content: space-between;"> |
| | | <div class="section-title">应收应付统计</div> |
| | | <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable"> |
| | | <el-radio-button label="按周" :value="1" /> |
| | | <el-radio-button label="按月" :value="2" /> |
| | | <el-radio-button label="按季度" :value="3" /> |
| | | </el-radio-group> |
| | | <!-- <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable">--> |
| | | <!-- <el-radio-button label="按周" :value="1" />--> |
| | | <!-- <el-radio-button label="按月" :value="2" />--> |
| | | <!-- <el-radio-button label="按季度" :value="3" />--> |
| | | <!-- </el-radio-group>--> |
| | | </div> |
| | | <Echarts ref="chart" |
| | | :color="barColors2" |
| | |
| | | |
| | | <script setup> |
| | | import { ref, reactive, onMounted } from 'vue' |
| | | import { ElNotification } from 'element-plus' |
| | | import Echarts from "@/components/Echarts/echarts.vue"; |
| | | import * as echarts from 'echarts'; |
| | | import useUserStore from "@/store/modules/user.js"; |
| | |
| | | getBusiness, |
| | | homeTodos, |
| | | qualityStatistics, |
| | | statisticsReceivablePayable |
| | | statisticsReceivablePayable, |
| | | approveAndDeviceTodos |
| | | } from "@/api/viewIndex.js"; |
| | | import { getCurrentUserLatestScheduling } from "@/api/personnelManagement/scheduling.js"; |
| | | import dayjs from "dayjs"; |
| | |
| | | qualityStatisticsInfo() |
| | | getAmountHalfYearNum() |
| | | getCurrentUserSchedule() |
| | | getApproveAndDeviceTodos() |
| | | }) |
| | | // 数据统计 |
| | | const getBusinessData = () => { |
| | |
| | | } |
| | | ] |
| | | } |
| | | |
| | | // 协同待审批和报修待办事项 |
| | | const getApproveAndDeviceTodos = async () => { |
| | | try { |
| | | const res = await approveAndDeviceTodos() |
| | | const { approveTodo, deviceRepairTodo } = res.data |
| | | |
| | | // 显示通知 |
| | | ElNotification({ |
| | | title: '待办事项提醒', |
| | | message: `当前有${approveTodo}条待审批事项,${deviceRepairTodo}条待维修事项`, |
| | | type: 'warning', |
| | | duration: 5000 |
| | | }) |
| | | } catch (error) { |
| | | console.error('获取协同待办事项失败:', error) |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | |
| | | </div> |
| | | </el-tab-pane> |
| | | |
| | | <!-- <el-tab-pane label="采购出库" name="purchase">--> |
| | | <!-- <div class="search_form">--> |
| | | <!-- <div>--> |
| | | <!--<!– <span class="search_title">供应商名称:</span>–>--> |
| | | <!--<!– <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"–>--> |
| | | <!--<!– clearable prefix-icon="Search" />–>--> |
| | | <!-- <span class="search_title ml10">入库日期:</span>--> |
| | | <!-- <el-date-picker--> |
| | | <!-- v-model="searchForm.timeStr"--> |
| | | <!-- type="date"--> |
| | | <!-- placeholder="请选择日期"--> |
| | | <!-- value-format="YYYY-MM-DD"--> |
| | | <!-- format="YYYY-MM-DD"--> |
| | | <!-- clearable--> |
| | | <!-- @change="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- <div>--> |
| | | <!-- <el-button @click="handleOut">导出</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="table_list">--> |
| | | <!-- <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"--> |
| | | <!-- :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"--> |
| | | <!-- :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">--> |
| | | <!-- <el-table-column align="center" type="selection" width="55" />--> |
| | | <!-- <el-table-column align="center" label="序号" type="index" width="60" />--> |
| | | <!-- <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />--> |
| | | <!--<!– <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />–>--> |
| | | <!-- <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />--> |
| | | <!--<!– <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />–>--> |
| | | <!--<!– <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />–>--> |
| | | <!--<!– <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />–>--> |
| | | <!--<!– <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />–>--> |
| | | <!-- <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />--> |
| | | <!-- <el-table-column fixed="right" label="操作" min-width="60" align="center">--> |
| | | <!-- <template #default="scope">--> |
| | | <!-- <el-button link type="primary" size="small" @click="openForm(scope.row);">领用</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- </el-table>--> |
| | | <!-- <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"--> |
| | | <!-- :page="page.current" :limit="page.size" @pagination="paginationChange" />--> |
| | | <!-- </div>--> |
| | | <!-- </el-tab-pane>--> |
| | | <el-tab-pane label="原料出库" name="purchase"> |
| | | <div class="search_form"> |
| | | <div> |
| | | <!-- <!– <span class="search_title">供应商名称:</span>–> |
| | | <!– <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"–> |
| | | <!– clearable prefix-icon="Search" />–> --> |
| | | <span class="search_title ml10">入库日期:</span> |
| | | <el-date-picker |
| | | v-model="searchForm.timeStr" |
| | | type="date" |
| | | placeholder="请选择日期" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | clearable |
| | | @change="handleQuery" |
| | | /> |
| | | <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button> |
| | | </div> |
| | | <div> |
| | | <el-button @click="handleOut">导出</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table_list"> |
| | | <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange" |
| | | :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%" |
| | | :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> |
| | | <el-table-column align="center" type="selection" width="55" /> |
| | | <el-table-column align="center" label="序号" type="index" width="60" /> |
| | | <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip /> |
| | | <!-- <!– <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />–> --> |
| | | <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip /> |
| | | <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip /> |
| | | <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip /> |
| | | <!-- <!– <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />–> |
| | | <!– <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />–> |
| | | <!– <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />–> |
| | | <!– <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />–> --> |
| | | <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> |
| | | <el-table-column fixed="right" label="操作" min-width="60" align="center"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" @click="openForm(scope.row);">领用</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" |
| | | :page="page.current" :limit="page.size" @pagination="paginationChange" /> |
| | | </div> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="成品出库" name="manual"> |
| | | <el-tab-pane label="材料出库" name="manual"> |
| | | <div class="search_form"> |
| | | <div> |
| | | <!-- <span class="search_title">供应商名称:</span>--> |
| | |
| | | </el-table-column> --> |
| | | <el-table-column label="物品类型" prop="itemType"> |
| | | <template #default="scope"> |
| | | <el-select v-model="scope.row.itemType" placeholder="请选择物品类型" style="width: 100%"> |
| | | <el-select v-model="scope.row.itemType" filterable allow-create placeholder="请选择物品类型" style="width: 100%"> |
| | | <el-option |
| | | v-for="item in itemTypeOptions" |
| | | :key="item.value" |
| | |
| | | :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> |
| | | <el-table-column align="center" label="序号" type="index" width="60" /> |
| | | <el-table-column label="入库时间" prop="createTime" show-overflow-tooltip /> |
| | | <el-table-column label="入库批次" prop="inboundBatches" show-overflow-tooltip /> |
| | | <!-- <el-table-column label="入库批次" prop="inboundBatches" show-overflow-tooltip /> --> |
| | | <!-- <el-table-column label="客户名称" prop="customerName" width="240" show-overflow-tooltip />--> |
| | | <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip /> |
| | |
| | | <!-- <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />--> |
| | | <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> |
| | | <!-- <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> --> |
| | | </el-table> |
| | | <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" |
| | | :page="page.current" :limit="page.size" @pagination="paginationChange" /> |
| | | </div> |
| | | </el-tab-pane> |
| | | |
| | | <!-- <el-tab-pane label="采购入库" name="purchase">--> |
| | | <!-- <div class="search_form">--> |
| | | <!-- <div>--> |
| | | <el-tab-pane label="采购入库" name="purchase"> |
| | | <div class="search_form"> |
| | | <div> |
| | | <!--<!– <span class="search_title">供应商名称:</span>–>--> |
| | | <!--<!– <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"–>--> |
| | | <!--<!– clearable prefix-icon="Search" />–>--> |
| | | <!-- <span class="search_title ml10">入库日期:</span>--> |
| | | <!-- <el-date-picker--> |
| | | <!-- v-model="searchForm.timeStr"--> |
| | | <!-- type="date"--> |
| | | <!-- placeholder="请选择日期"--> |
| | | <!-- value-format="YYYY-MM-DD"--> |
| | | <!-- format="YYYY-MM-DD"--> |
| | | <!-- clearable--> |
| | | <!-- @change="handleQuery"--> |
| | | <!-- />--> |
| | | <!-- <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- <div>--> |
| | | <!-- <el-button type="primary" @click="openForm('add', 'purchase')">新增入库</el-button>--> |
| | | <!-- <el-button @click="handleOut">导出</el-button>--> |
| | | <!-- <el-button type="danger" plain @click="handleDelete">删除</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="table_list">--> |
| | | <!-- <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"--> |
| | | <!-- :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"--> |
| | | <!-- :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">--> |
| | | <!-- <el-table-column align="center" type="selection" width="55" />--> |
| | | <!-- <el-table-column align="center" label="序号" type="index" width="60" />--> |
| | | <!-- <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />--> |
| | | <span class="search_title ml10">入库日期:</span> |
| | | <el-date-picker |
| | | v-model="searchForm.timeStr" |
| | | type="date" |
| | | placeholder="请选择日期" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | clearable |
| | | @change="handleQuery" |
| | | /> |
| | | <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button> |
| | | </div> |
| | | <div> |
| | | <el-button type="primary" @click="openForm('add', 'purchase')">新增入库</el-button> |
| | | <el-button @click="handleOut">导出</el-button> |
| | | <el-button type="danger" plain @click="handleDelete">删除</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table_list"> |
| | | <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange" |
| | | :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%" |
| | | :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> |
| | | <el-table-column align="center" type="selection" width="55" /> |
| | | <el-table-column align="center" label="序号" type="index" width="60" /> |
| | | <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip /> |
| | | <!-- <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip /> --> |
| | | <!--<!– <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />–>--> |
| | | <!-- <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />--> |
| | | <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip /> |
| | | <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip /> |
| | | <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip /> |
| | | <!--<!– <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />–>--> |
| | | <!--<!– <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />–>--> |
| | | <!--<!– <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />–>--> |
| | | <!--<!– <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />–>--> |
| | | <!-- <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />--> |
| | | <!-- <el-table-column fixed="right" label="操作" min-width="60" align="center">--> |
| | | <!-- <template #default="scope">--> |
| | | <!-- <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'purchase');">编辑</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- </el-table>--> |
| | | <!-- <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"--> |
| | | <!-- :page="page.current" :limit="page.size" @pagination="paginationChange" />--> |
| | | <!-- </div>--> |
| | | <!-- </el-tab-pane>--> |
| | | <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> |
| | | <el-table-column fixed="right" label="操作" min-width="60" align="center"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'purchase');">编辑</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" |
| | | :page="page.current" :limit="page.size" @pagination="paginationChange" /> |
| | | </div> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="成品入库" name="manual"> |
| | | <el-tab-pane label="材料入库" name="manual"> |
| | | <div class="search_form"> |
| | | <div> |
| | | <!-- <span class="search_title">供应商名称:</span>--> |
| | |
| | | <el-table-column align="center" type="selection" width="55" /> |
| | | <el-table-column align="center" label="序号" type="index" width="60" /> |
| | | <el-table-column label="入库时间" prop="inboundDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="入库批次" prop="inboundBatches" show-overflow-tooltip /> |
| | | <!-- <el-table-column label="入库批次" prop="inboundBatches" show-overflow-tooltip /> --> |
| | | <!-- <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip /> --> |
| | | <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip /> |
| | |
| | | <!-- <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="税率(%)" prop="taxRate" width="100" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />--> |
| | | <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> |
| | | <!-- <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> --> |
| | | <el-table-column fixed="right" label="操作" min-width="60" align="center"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">编辑</el-button> |
| | |
| | | <!-- <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="税率(%)" prop="taxRate" width="100" show-overflow-tooltip />--> |
| | | <!-- <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />--> |
| | | <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> |
| | | <!-- <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> --> |
| | | <el-table-column fixed="right" label="操作" width="100" align="center"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">编辑</el-button> |
| | |
| | | const handleDelete = () => { |
| | | let ids = [] |
| | | if (selectedRows.value.length > 0) { |
| | | // 检查是否有他人维护的数据 |
| | | const unauthorizedData = selectedRows.value.filter(item => item.createBy !== userStore.nickName); |
| | | if (unauthorizedData.length > 0) { |
| | | proxy.$modal.msgWarning("不可删除他人维护的数据"); |
| | | return; |
| | | } |
| | | ids = selectedRows.value.map(item => item.id); |
| | | } else { |
| | | proxy.$modal.msgWarning('请选择数据') |
| | |
| | | <el-input v-model="scope.row.process" placeholder="请输入工序" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="产线" prop="productionLine" width="150"> |
| | | <template #default="scope"> |
| | | <el-select |
| | | v-model="scope.row.productionLine" |
| | | placeholder="选择产线" |
| | | style="width: 100%;" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="line in productionLines" |
| | | :key="line.value" |
| | | :label="line.label" |
| | | :value="line.value" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="单位" prop="unit" width="90"> |
| | | <template #default="scope"> |
| | | <el-input v-model="scope.row.unit" placeholder="请输入单位" /> |
| | |
| | | const pendingNum = ref(0); |
| | | const userList = ref([]) |
| | | const receive = ref('') |
| | | const sunqianUserId = ref('') |
| | | // 产线选项 |
| | | const productionLines = ref([ |
| | | { label: '产线1', value: '产线1' }, |
| | | { label: '产线2', value: '产线2' }, |
| | | { label: '产线3', value: '产线3' }, |
| | | { label: '产线4', value: '产线4' } |
| | | ]) |
| | | |
| | | // 打开弹框 |
| | | const openDialog = (type, row) => { |
| | | operationType.value = type; |
| | | dialogFormVisible.value = true; |
| | | userListNoPageByTenantId().then((res) => { |
| | | userList.value = res.data; |
| | | }); |
| | | pendingNum.value = row?.pendingNum ?? 0; |
| | | unitFromRow.value = row?.unit ?? ''; |
| | | idFromRow.value = row?.id ?? ''; |
| | | specificationModelFromRow.value = row?.specificationModel ?? ''; |
| | | tableData.value = [createRow()]; |
| | | |
| | | userListNoPageByTenantId().then((res) => { |
| | | userList.value = res.data; |
| | | // 找到孙倩的用户ID并设置为默认值 |
| | | const sunqianUser = userList.value.find(user => user.nickName === '孙倩'); |
| | | if (sunqianUser) { |
| | | sunqianUserId.value = sunqianUser.userId; |
| | | } |
| | | // 在用户列表加载完成后创建行数据 |
| | | tableData.value = [createRow()]; |
| | | }); |
| | | } |
| | | |
| | | const createRow = () => ({ |
| | | id: idFromRow.value, |
| | | process: '', |
| | | process: '包装', |
| | | schedulingDate: '', |
| | | schedulingNum: null, |
| | | schedulingUserId: '', |
| | | schedulingUserId: sunqianUserId.value, // 默认设置为孙倩的用户ID |
| | | workHours: null, |
| | | unit: unitFromRow.value, |
| | | remark: '', |
| | | type: specificationModelFromRow.value, |
| | | productionLine: '', // 产线字段 |
| | | }); |
| | | |
| | | const submitForm = () => { |
| | |
| | | row.schedulingNum === '' || row.schedulingNum === null || |
| | | !row.schedulingUserId || |
| | | row.workHours === '' || row.workHours === null || |
| | | !row.unit |
| | | !row.unit || |
| | | !row.productionLine |
| | | ) { |
| | | proxy.$modal.msgError(`第${i + 1}行数据未填写完整`); |
| | | return; |
| | |
| | | style="width: 200px;" |
| | | @change="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="项目名称:"> |
| | | <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search" |
| | | style="width: 200px;" |
| | | @change="handleQuery" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="项目名称:">--> |
| | | <!-- <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- @change="handleQuery" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="派工日期:"> |
| | | <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange" |
| | | placeholder="请选择" clearable @change="changeDaterange" /> |
| | |
| | | prop: "salesContractNo", |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: "客户合同号", |
| | | prop: "customerContractNo", |
| | | width: 200, |
| | | }, |
| | | // { |
| | | // label: "客户合同号", |
| | | // prop: "customerContractNo", |
| | | // width: 200, |
| | | // }, |
| | | { |
| | | label: "客户名称", |
| | | prop: "customerName", |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: "项目名称", |
| | | prop: "projectName", |
| | | width:300 |
| | | }, |
| | | // { |
| | | // label: "项目名称", |
| | | // prop: "projectName", |
| | | // width:300 |
| | | // }, |
| | | { |
| | | label: "产品大类", |
| | | prop: "productCategory", |
| | |
| | | prop: "salesContractNo", |
| | | width: 220, |
| | | }, |
| | | { |
| | | label: "客户合同号", |
| | | prop: "customerContractNo", |
| | | width: 250, |
| | | }, |
| | | // { |
| | | // label: "客户合同号", |
| | | // prop: "customerContractNo", |
| | | // width: 250, |
| | | // }, |
| | | { |
| | | label: "客户名称", |
| | | prop: "customerName", |
| | | width: 250, |
| | | }, |
| | | { |
| | | label: "项目名称", |
| | | prop: "projectName", |
| | | width:300 |
| | | }, |
| | | // { |
| | | // label: "项目名称", |
| | | // prop: "projectName", |
| | | // width:300 |
| | | // }, |
| | | { |
| | | label: "产品大类", |
| | | prop: "productCategory", |
| | |
| | | clearable |
| | | prefix-icon="Search" |
| | | /> |
| | | <span class="search_title ml10">项目名称:</span> |
| | | <el-input |
| | | v-model="searchForm.projectName" |
| | | style="width: 240px" |
| | | placeholder="请输入" |
| | | @change="handleQuery" |
| | | clearable |
| | | prefix-icon="Search" |
| | | /> |
| | | <!-- <span class="search_title ml10">项目名称:</span>--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="searchForm.projectName"--> |
| | | <!-- style="width: 240px"--> |
| | | <!-- placeholder="请输入"--> |
| | | <!-- @change="handleQuery"--> |
| | | <!-- clearable--> |
| | | <!-- prefix-icon="Search"--> |
| | | <!-- />--> |
| | | <span class="search_title ml10">录入日期:</span> |
| | | <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange" |
| | | placeholder="请选择" clearable @change="changeDaterange" /> |
| | | <el-checkbox |
| | | style="margin-left: 10px" |
| | | v-model="searchForm.status" |
| | | label="不显示待排数量为0" |
| | | @change="handleQuery" |
| | | /> |
| | | <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button> |
| | | </div> |
| | | <div> |
| | |
| | | searchForm: { |
| | | customerName: "", |
| | | projectName: "", |
| | | status: "", |
| | | status: true, |
| | | entryDate: [dayjs().format("YYYY-MM-DD"), dayjs().format("YYYY-MM-DD")], // 录入日期,默认当天 |
| | | entryDateStart: dayjs().format("YYYY-MM-DD"), |
| | | entryDateEnd: dayjs().format("YYYY-MM-DD"), |
| | |
| | | prop: "salesContractNo", |
| | | width: 220, |
| | | }, |
| | | { |
| | | label: "客户合同号", |
| | | prop: "customerContractNo", |
| | | width: 250, |
| | | }, |
| | | // { |
| | | // label: "客户合同号", |
| | | // prop: "customerContractNo", |
| | | // width: 250, |
| | | // }, |
| | | { |
| | | label: "客户名称", |
| | | prop: "customerName", |
| | | width: 250, |
| | | }, |
| | | { |
| | | label: "项目名称", |
| | | prop: "projectName", |
| | | width:300 |
| | | }, |
| | | // { |
| | | // label: "项目名称", |
| | | // prop: "projectName", |
| | | // width:300 |
| | | // }, |
| | | { |
| | | label: "产品大类", |
| | | prop: "productCategory", |
| | |
| | | label: "待排数量", |
| | | prop: "pendingQuantity", |
| | | width: 100, |
| | | fixed: 'right', |
| | | }, |
| | | ]); |
| | | const tableData = ref([]); |
| | |
| | | clearable |
| | | prefix-icon="Search" |
| | | /> |
| | | <span class="search_title ml10">项目名称:</span> |
| | | <el-input |
| | | v-model="searchForm.projectName" |
| | | style="width: 240px" |
| | | placeholder="请输入" |
| | | @change="handleQuery" |
| | | clearable |
| | | prefix-icon="Search" |
| | | /> |
| | | <!-- <span class="search_title ml10">项目名称:</span>--> |
| | | <!-- <el-input--> |
| | | <!-- v-model="searchForm.projectName"--> |
| | | <!-- style="width: 240px"--> |
| | | <!-- placeholder="请输入"--> |
| | | <!-- @change="handleQuery"--> |
| | | <!-- clearable--> |
| | | <!-- prefix-icon="Search"--> |
| | | <!-- />--> |
| | | <span class="search_title ml10">录入日期:</span> |
| | | <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange" |
| | | placeholder="请选择" clearable @change="changeDaterange" /> |
| | |
| | | prop: "salesContractNo", |
| | | width: 220, |
| | | }, |
| | | { |
| | | label: "客户合同号", |
| | | prop: "customerContractNo", |
| | | width: 250, |
| | | }, |
| | | // { |
| | | // label: "客户合同号", |
| | | // prop: "customerContractNo", |
| | | // width: 250, |
| | | // }, |
| | | { |
| | | label: "客户名称", |
| | | prop: "customerName", |
| | | width: 250, |
| | | }, |
| | | { |
| | | label: "项目名称", |
| | | prop: "projectName", |
| | | width:300 |
| | | }, |
| | | // { |
| | | // label: "项目名称", |
| | | // prop: "projectName", |
| | | // width:300 |
| | | // }, |
| | | { |
| | | label: "付款状态", |
| | | prop: "status", |
| | |
| | | style="width: 200px;" |
| | | @change="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="项目名称:"> |
| | | <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search" |
| | | style="width: 200px;" |
| | | @change="handleQuery" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="项目名称:">--> |
| | | <!-- <el-input v-model="searchForm.projectName" placeholder="请输入" clearable prefix-icon="Search"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- @change="handleQuery" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="排产日期:"> |
| | | <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange" |
| | | placeholder="请选择" clearable @change="changeDaterange" /> |
| | |
| | | prop: "salesContractNo", |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: "客户合同号", |
| | | prop: "customerContractNo", |
| | | width: 200, |
| | | }, |
| | | // { |
| | | // label: "客户合同号", |
| | | // prop: "customerContractNo", |
| | | // width: 200, |
| | | // }, |
| | | { |
| | | label: "客户名称", |
| | | prop: "customerName", |
| | | width: 200, |
| | | }, |
| | | { |
| | | label: "项目名称", |
| | | prop: "projectName", |
| | | width:300 |
| | | }, |
| | | // { |
| | | // label: "项目名称", |
| | | // prop: "projectName", |
| | | // width:300 |
| | | // }, |
| | | { |
| | | label: "产品大类", |
| | | prop: "productCategory", |
| | |
| | | <div class="panel-item-customers"> |
| | | <div style="display: flex;justify-content: space-between;margin-bottom: 20px;"> |
| | | <div class="section-title">应收应付统计</div> |
| | | <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable" class="custom-radio-group"> |
| | | <el-radio-button label="按周" :value="1" /> |
| | | <el-radio-button label="按月" :value="2" /> |
| | | <el-radio-button label="按季度" :value="3" /> |
| | | </el-radio-group> |
| | | <!-- <el-radio-group v-model="radio1" size="large" @change="statisticsReceivable" class="custom-radio-group">--> |
| | | <!-- <el-radio-button label="按周" :value="1" />--> |
| | | <!-- <el-radio-button label="按月" :value="2" />--> |
| | | <!-- <el-radio-button label="按季度" :value="3" />--> |
| | | <!-- </el-radio-group>--> |
| | | </div> |
| | | <Echarts ref="chart" |
| | | :color="barColors2" |
| | |
| | | <el-table-column align="center" label="序号" type="index" width="60" /> |
| | | <el-table-column label="销售合同号" prop="salesContractNo" show-overflow-tooltip width="180" /> |
| | | <el-table-column label="客户名称" prop="customerName" show-overflow-tooltip width="240" /> |
| | | <el-table-column label="项目" prop="projectName" width="320" /> |
| | | <!-- <el-table-column label="项目" prop="projectName" width="320" />--> |
| | | <el-table-column label="产品大类" prop="productCategory" width="200" /> |
| | | <el-table-column label="规格型号" prop="specificationModel" width="160" show-overflow-tooltip /> |
| | | <el-table-column label="发票号" prop="invoiceNo" width="200" show-overflow-tooltip /> |
| | |
| | | <el-table-column label="合同金额(元)" prop="contractAmount" width="220" show-overflow-tooltip |
| | | :formatter="formattedNumber" /> |
| | | <el-table-column label="录入人" prop="entryPersonName" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="发货车牌" prop="shippingCarNumber" width="120" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <div> |
| | | <div v-if="scope.row.shippingCarNumber">{{ scope.row.shippingCarNumber }}</div> |
| | | <el-tag v-else type="warning">未发货</el-tag> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="录入日期" prop="entryDate" width="120" show-overflow-tooltip /> |
| | | <el-table-column label="签订日期" prop="executionDate" width="120" show-overflow-tooltip /> |
| | | <el-table-column fixed="right" label="操作" min-width="200" align="center"> |
| | |
| | | <el-button link type="primary" size="small" @click="openForm('edit', scope.row)">编辑</el-button> |
| | | <!-- <el-button link type="primary" size="small" @click="openForm('view', scope.row)">详情</el-button>--> |
| | | <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">附件</el-button> |
| | | <el-button link type="primary" size="small" @click="openDeliveryForm(scope.row)">发货</el-button> |
| | | <el-button v-if="!scope.row.shippingCarNumber" link type="primary" size="small" @click="openDeliveryForm(scope.row)">发货</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-row :gutter="30"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="发货车牌号:" prop="shippingCarNumber"> |
| | | <el-input |
| | | <el-select v-model="deliveryForm.shippingCarNumber" filterable allow-create placeholder="请选择发货车牌号"> |
| | | <el-option key="1" label="新A H5153" value="新A H5153"/> |
| | | <el-option key="2" label="新A H4232" value="新A H4232"/> |
| | | <el-option key="3" label="新A H4001" value="新A H4001"/> |
| | | <el-option key="4" label="新A H6409" value="新A H6409"/> |
| | | <el-option key="5" label="新A G7446" value="新A G7446"/> |
| | | <el-option key="6" label="新H 80369" value="新H 80369"/> |
| | | </el-select> |
| | | <!-- <el-input |
| | | v-model="deliveryForm.shippingCarNumber" |
| | | placeholder="请输入发货车牌号" |
| | | clearable |
| | | /> |
| | | /> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |