|
@@ -0,0 +1,206 @@
|
|
|
+<template>
|
|
|
+ <a-card :bordered="false">
|
|
|
+ <a-form ref="searchFormRef" name="advanced_search" :model="searchFormState" class="ant-advanced-search-form">
|
|
|
+ <a-row :gutter="24">
|
|
|
+ <a-col :span="6">
|
|
|
+ <a-form-item label="货品名称" name="goodsName">
|
|
|
+ <a-input v-model:value="searchFormState.goodsName" placeholder="请输入货品名称" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="9">
|
|
|
+ <a-form-item label="提货开始时间" name="confStartTime">
|
|
|
+ <a-range-picker v-model:value="searchFormState.confStartTime" value-format="YYYY-MM-DD HH:mm" show-time />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="9">
|
|
|
+ <a-form-item label="提货结束时间" name="confEndTime">
|
|
|
+ <a-range-picker v-model:value="searchFormState.confEndTime" value-format="YYYY-MM-DD HH:mm" show-time />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+ <a-row :gutter="24">
|
|
|
+ <a-col :span="6">
|
|
|
+ <a-form-item label="货品编码" name="goodsCode">
|
|
|
+ <a-input v-model:value="searchFormState.goodsCode" placeholder="请输入货品名称" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="9"></a-col>
|
|
|
+ <a-col :span="9">
|
|
|
+ <a-button type="primary" @click="tableRef.refresh()">查询</a-button>
|
|
|
+ <a-button style="margin: 0 8px" @click="reset">重置</a-button>
|
|
|
+
|
|
|
+ <a-button type="primary" @click="addFormRef.onOpen()" v-if="hasPerm('goodsConfAdd')">
|
|
|
+ <template #icon><plus-outlined /></template>
|
|
|
+ 新增
|
|
|
+ </a-button>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+ </a-form>
|
|
|
+ <s-table
|
|
|
+ ref="tableRef"
|
|
|
+ :columns="columns"
|
|
|
+ :data="loadData"
|
|
|
+ bordered
|
|
|
+ :row-key="(record) => record.id"
|
|
|
+ >
|
|
|
+ <template #bodyCell="{ column, record, index }">
|
|
|
+ <template v-if="column.dataIndex === 'serial'">
|
|
|
+ {{ index + 1 }}
|
|
|
+ </template>
|
|
|
+ <template v-if="column.dataIndex === 'action'">
|
|
|
+ <a-space>
|
|
|
+ <a @click="editFormRef.onOpen(record)" v-if="hasPerm('goodsConfEdit') && Number(record.usedWeight) == 0">编辑</a>
|
|
|
+
|
|
|
+ <a-divider type="vertical" v-if="hasPerm(['goodsConfEdit', 'goodsConfDelete'], 'and')" />
|
|
|
+ <a-popconfirm title="确定要删除吗?" @confirm="deleteGoodsConf(record)">
|
|
|
+ <a-button type="link" danger size="small" v-if="hasPerm('goodsConfDelete')">删除</a-button>
|
|
|
+ </a-popconfirm>
|
|
|
+
|
|
|
+ <a-divider type="vertical" v-if="hasPerm(['goodsConfEdit', 'goodsConfWeight'], 'and')" />
|
|
|
+ <a @click="weightFormRef.onOpen(record)" v-if="hasPerm('goodsConfWeight')">重量</a>
|
|
|
+ </a-space>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </s-table>
|
|
|
+ </a-card>
|
|
|
+ <AddForm ref="addFormRef" @successful="tableRef.refresh()" />
|
|
|
+ <EditForm ref="editFormRef" @successful="tableRef.refresh()" />
|
|
|
+ <WeightForm ref="weightFormRef" @successful="tableRef.refresh()" />
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup name="goodsConf">
|
|
|
+ import { cloneDeep } from 'lodash-es'
|
|
|
+ import AddForm from './addForm.vue'
|
|
|
+ import EditForm from './editForm.vue'
|
|
|
+ import WeightForm from './weightForm.vue'
|
|
|
+ import goodsConfApi from '@/api/biz/goodsConfApi'
|
|
|
+
|
|
|
+ const searchFormState = ref({})
|
|
|
+ const searchFormRef = ref()
|
|
|
+ const tableRef = ref()
|
|
|
+ const addFormRef = ref()
|
|
|
+ const editFormRef = ref()
|
|
|
+ const weightFormRef = ref()
|
|
|
+
|
|
|
+ const toolConfig = { refresh: true, height: true, columnSetting: true, striped: false }
|
|
|
+ const columns = [
|
|
|
+ {
|
|
|
+ title: '序号',
|
|
|
+ width: 50,
|
|
|
+ dataIndex: 'serial',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '货品编码',
|
|
|
+ width: 120,
|
|
|
+ dataIndex: 'goodsCode',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '货品名称',
|
|
|
+ dataIndex: 'goodsName',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '货品规格',
|
|
|
+ width: 80,
|
|
|
+ dataIndex: 'goodsModel',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '提货开始时间',
|
|
|
+ width: 150,
|
|
|
+ dataIndex: 'confStartTime',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '提货结束时间',
|
|
|
+ width: 150,
|
|
|
+ dataIndex: 'confEndTime',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '可提重量(KG)',
|
|
|
+ width: 110,
|
|
|
+ dataIndex: 'confWeight',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '已提重量(KG)',
|
|
|
+ width: 110,
|
|
|
+ dataIndex: 'usedWeight',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '剩余重量(KG)',
|
|
|
+ width: 110,
|
|
|
+ dataIndex: 'lastWeight',
|
|
|
+ align:'center'
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ // 操作栏通过权限判断是否显示
|
|
|
+ if (hasPerm(['goodsConfEdit', 'goodsConfDelete', 'goodsConfWeight'])) {
|
|
|
+ columns.push({
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'action',
|
|
|
+ align: 'center',
|
|
|
+ width: 200
|
|
|
+ })
|
|
|
+ }
|
|
|
+ const selectedRowKeys = ref([])
|
|
|
+ // 列表选择配置
|
|
|
+ const options = {
|
|
|
+ // columns数字类型字段加入 needTotal: true 可以勾选自动算账
|
|
|
+ alert: {
|
|
|
+ show: true,
|
|
|
+ clear: () => {
|
|
|
+ selectedRowKeys.value = ref([])
|
|
|
+ }
|
|
|
+ },
|
|
|
+ rowSelection: {
|
|
|
+ onChange: (selectedRowKey, selectedRows) => {
|
|
|
+ selectedRowKeys.value = selectedRowKey
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const loadData = (parameter) => {
|
|
|
+ const searchFormParam = cloneDeep(searchFormState.value)
|
|
|
+ // confStartTime范围查询条件重载
|
|
|
+ if (searchFormParam.confStartTime) {
|
|
|
+ searchFormParam.startConfStartTime = searchFormParam.confStartTime[0]+":00"
|
|
|
+ searchFormParam.endConfStartTime = searchFormParam.confStartTime[1]+":00"
|
|
|
+ delete searchFormParam.confStartTime
|
|
|
+ }
|
|
|
+ // confEndTime范围查询条件重载
|
|
|
+ if (searchFormParam.confEndTime) {
|
|
|
+ searchFormParam.startConfEndTime = searchFormParam.confEndTime[0]+":00"
|
|
|
+ searchFormParam.endConfEndTime = searchFormParam.confEndTime[1]+":00"
|
|
|
+ delete searchFormParam.confEndTime
|
|
|
+ }
|
|
|
+ return goodsConfApi.goodsConfPage(Object.assign(parameter, searchFormParam)).then((data) => {
|
|
|
+ return data
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 重置
|
|
|
+ const reset = () => {
|
|
|
+ searchFormRef.value.resetFields()
|
|
|
+ tableRef.value.refresh(true)
|
|
|
+ }
|
|
|
+ // 删除
|
|
|
+ const deleteGoodsConf = (record) => {
|
|
|
+ let params = [
|
|
|
+ {
|
|
|
+ id: record.id
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ goodsConfApi.goodsConfDelete(params).then(() => {
|
|
|
+ tableRef.value.refresh(true)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 批量删除
|
|
|
+ const deleteBatchGoodsConf = (params) => {
|
|
|
+ goodsConfApi.goodsConfDelete(params).then(() => {
|
|
|
+ tableRef.value.clearRefreshSelected()
|
|
|
+ })
|
|
|
+ }
|
|
|
+</script>
|