Browse Source

基础数据页面

master
李胜楠 1 year ago
parent
commit
32014d7fc1
  1. 50
      src/components/BasicForm/src/BasicForm.vue
  2. 200
      src/views/wms/accountcalendar/AccountcalendarForm.vue
  3. 9
      src/views/wms/accountcalendar/index.vue
  4. 197
      src/views/wms/areabasic/AreaForm.vue
  5. 36
      src/views/wms/areabasic/index.vue
  6. 39
      src/views/wms/businesstype/index.vue
  7. 9
      src/views/wms/carrier/index.vue
  8. 4
      src/views/wms/condition/index.vue
  9. 4
      src/views/wms/configuration/index.vue
  10. 4
      src/views/wms/configurationsetting/index.vue
  11. 162
      src/views/wms/currencyexchange/CurrencyexchangeForm.vue
  12. 9
      src/views/wms/currencyexchange/index.vue
  13. 261
      src/views/wms/customer/CustomerForm.vue
  14. 9
      src/views/wms/customer/index.vue
  15. 217
      src/views/wms/customerdock/CustomerdockForm.vue
  16. 46
      src/views/wms/customerdock/index.vue
  17. 238
      src/views/wms/customeritem/CustomeritemForm.vue
  18. 38
      src/views/wms/customeritem/index.vue
  19. 224
      src/views/wms/dock/DockForm.vue
  20. 42
      src/views/wms/dock/index.vue
  21. 4
      src/views/wms/documentsetting/index.vue
  22. 4
      src/views/wms/jobsetting/index.vue
  23. 290
      src/views/wms/location/LocationForm.vue
  24. 48
      src/views/wms/location/index.vue
  25. 177
      src/views/wms/locationgroup/LocationgroupForm.vue
  26. 42
      src/views/wms/locationgroup/index.vue
  27. 9
      src/views/wms/owner/index.vue
  28. 4
      src/views/wms/paramsetting/index.vue
  29. 191
      src/views/wms/process/ProcessForm.vue
  30. 42
      src/views/wms/process/index.vue
  31. 199
      src/views/wms/productionline/ProductionlineForm.vue
  32. 47
      src/views/wms/productionline/index.vue
  33. 167
      src/views/wms/project/ProjectForm.vue
  34. 34
      src/views/wms/project/index.vue
  35. 177
      src/views/wms/purchaseprice/PurchasepriceForm.vue
  36. 40
      src/views/wms/purchaseprice/index.vue
  37. 4
      src/views/wms/recordsetting/index.vue
  38. 4
      src/views/wms/requestsetting/index.vue
  39. 4
      src/views/wms/rule/index.vue
  40. 177
      src/views/wms/saleprice/SalepriceForm.vue
  41. 38
      src/views/wms/saleprice/index.vue
  42. 9
      src/views/wms/shift/index.vue
  43. 261
      src/views/wms/supplier/SupplierForm.vue
  44. 9
      src/views/wms/supplier/index.vue
  45. 268
      src/views/wms/supplieritem/SupplieritemForm.vue
  46. 52
      src/views/wms/supplieritem/index.vue
  47. 168
      src/views/wms/systemcalendar/SystemcalendarForm.vue
  48. 9
      src/views/wms/systemcalendar/index.vue
  49. 9
      src/views/wms/team/index.vue
  50. 4
      src/views/wms/transactiontype/index.vue
  51. 173
      src/views/wms/warehouse/WarehouseForm.vue
  52. 12
      src/views/wms/warehouse/index.vue
  53. 173
      src/views/wms/workshop/WorkshopForm.vue
  54. 12
      src/views/wms/workshop/index.vue
  55. 211
      src/views/wms/workstation/WorkstationForm.vue
  56. 53
      src/views/wms/workstation/index.vue

50
src/components/BasicForm/src/BasicForm.vue

@ -34,6 +34,56 @@
<el-input v-model="form['fgLocationCode']" :placeholder="'请选择库位代码'" @click="opensearchTable('fgLocationCode', 'code')" />
</div>
</template>
<template #defaultWarehouseCode="form">
<div class="w-[100%] flex">
<el-input v-model="form['defaultWarehouseCode']" :placeholder="'请选择仓库代码'" @click="opensearchTable('defaultWarehouseCode', 'code')" />
</div>
</template>
<template #defaultLocationCode="form">
<div class="w-[100%] flex">
<el-input v-model="form['defaultLocationCode']" :placeholder="'请选择库位代码'" @click="opensearchTable('defaultLocationCode', 'code')" />
</div>
</template>
<template #customerCode="form">
<div class="w-[100%] flex">
<el-input v-model="form['customerCode']" :placeholder="'请选择客户代码'" @click="opensearchTable('customerCode', 'code')" />
</div>
</template>
<template #warehouseCode="form">
<div class="w-[100%] flex">
<el-input v-model="form['warehouseCode']" :placeholder="'请选择仓库代码'" @click="opensearchTable('warehouseCode', 'code')" />
</div>
</template>
<template #areaCode="form">
<div class="w-[100%] flex">
<el-input v-model="form['areaCode']" :placeholder="'请选择库区代码'" @click="opensearchTable('areaCode', 'code')" />
</div>
</template>
<template #locationGroupCode="form">
<div class="w-[100%] flex">
<el-input v-model="form['locationGroupCode']" :placeholder="'请选择库位组代码'" @click="opensearchTable('locationGroupCode', 'code')" />
</div>
</template>
<template #rawLocationCode="form">
<div class="w-[100%] flex">
<el-input v-model="form['rawLocationCode']" :placeholder="'请选择库位代码'" @click="opensearchTable('rawLocationCode', 'code')" />
</div>
</template>
<template #workshopCode="form">
<div class="w-[100%] flex">
<el-input v-model="form['workshopCode']" :placeholder="'请选择车间代码'" @click="opensearchTable('workshopCode', 'code')" />
</div>
</template>
<template #outAreaCodes="form">
<div class="w-[100%] flex">
<el-input v-model="form['outAreaCodes']" :placeholder="'请选择库区代码'" @click="opensearchTable('outAreaCodes', 'code')" />
</div>
</template>
<template #inAreaCodes="form">
<div class="w-[100%] flex">
<el-input v-model="form['inAreaCodes']" :placeholder="'请选择库区代码'" @click="opensearchTable('inAreaCodes', 'code')" />
</div>
</template>
</Form>
<div class="table" v-if="isBusiness">
<TableForm ref="tableFormRef"

200
src/views/wms/accountcalendar/AccountcalendarForm.vue

@ -1,200 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="年" prop="year">
<el-input v-model="formData.year" placeholder="请输入年" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="月" prop="month">
<el-input v-model="formData.month" placeholder="请输入月" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述" prop="descriiption">
<el-input v-model="formData.descriiption" placeholder="请输入描述" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开始时间" prop="beginTime">
<el-date-picker
v-model="formData.beginTime"
type="date"
value-format="x"
placeholder="选择开始时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
v-model="formData.endTime"
type="date"
value-format="x"
placeholder="选择结束时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="转换生效时间" prop="converttotime">
<el-date-picker
v-model="formData.converttotime"
type="date"
value-format="x"
placeholder="选择转换生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import * as AccountcalendarApi from '@/api/wms/accountcalendar'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
year: undefined,
month: undefined,
descriiption: undefined,
beginTime: undefined,
endTime: undefined,
converttotime: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
year: [{ required: true, message: '年不能为空', trigger: 'blur' }],
month: [{ required: true, message: '月不能为空', trigger: 'blur' }],
beginTime: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
endTime: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }],
converttotime: [{ required: true, message: '转换生效时间不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await AccountcalendarApi.getAccountcalendar(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as AccountcalendarApi.AccountcalendarVO
if (formType.value === 'create') {
await AccountcalendarApi.createAccountcalendar(data)
message.success(t('common.createSuccess'))
} else {
await AccountcalendarApi.updateAccountcalendar(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
year: undefined,
month: undefined,
descriiption: undefined,
beginTime: undefined,
endTime: undefined,
converttotime: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

9
src/views/wms/accountcalendar/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="AccountcalendarRules"
:formAllSchemas="Accountcalendar.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Accountcalendar.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="AccountcalendarApi.updateAccountcalendar"
:apiCreate="AccountcalendarApi.createAccountcalendar"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as AccountcalendarApi from '@/api/wms/accountcalendar'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Accountcalendar, AccountcalendarRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:accountcalendar:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:accountcalendar:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:accountcalendar:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

197
src/views/wms/areabasic/AreaForm.vue

@ -1,197 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="仓库代码" prop="warehouseCode">
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.AREA_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否是功能区" prop="isFunctional">
<el-select v-model="formData.isFunctional" placeholder="请选择是否是功能区">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as AreaApi from '@/api/wms/areabasic'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
warehouseCode: undefined,
type: undefined,
isFunctional: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
warehouseCode: [{ required: true, message: '仓库代码不能为空', trigger: 'blur' }],
isFunctional: [{ required: true, message: '是否是功能区不能为空', trigger: 'change' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await AreaApi.getArea(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as AreaApi.AreaVO
if (formType.value === 'create') {
await AreaApi.createArea(data)
message.success(t('common.createSuccess'))
} else {
await AreaApi.updateArea(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
warehouseCode: undefined,
type: undefined,
isFunctional: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

36
src/views/wms/areabasic/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="AreaRules"
:formAllSchemas="Area.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Area.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="AreaApi.updateArea"
:apiCreate="AreaApi.createArea"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,9 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as AreaApi from '@/api/wms/areabasic'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as WarehouseApi from '@/api/wms/warehouse'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Area, AreaRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Area, AreaRules, Warehouse } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +67,14 @@ defineOptions({ name: 'Area' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'warehouseCode',
searchTableTitle: '仓库信息',
searchTableAllSchemas: Warehouse.allSchemas,
searchTablePage: WarehouseApi.getWarehousePage
}])
const { tableObject, tableMethods } = useTable({
getListApi: AreaApi.getAreaPage //
})
@ -79,8 +87,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:areabasic:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:areabasic:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:areabasic:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +136,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

39
src/views/wms/businesstype/index.vue

@ -37,11 +37,11 @@
@success="getList"
:rules="BusinesstypeRules"
:formAllSchemas="Businesstype.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:searchTableParams="searchTableParams"
:apiUpdate="BusinesstypeApi.updateBusinesstype"
:apiCreate="BusinesstypeApi.createBusinesstype"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,9 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as BusinesstypeApi from '@/api/wms/businesstype'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as AreaApi from '@/api/wms/areabasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Businesstype, BusinesstypeRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Businesstype, BusinesstypeRules, Area } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +67,19 @@ defineOptions({ name: 'Businesstype' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'outAreaCodes',
searchTableTitle: '库区信息',
searchTableAllSchemas: Area.allSchemas,
searchTablePage: AreaApi.getAreaPage
},{
formField: 'inAreaCodes',
searchTableTitle: '库区信息',
searchTableAllSchemas: Area.allSchemas,
searchTablePage: AreaApi.getAreaPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: BusinesstypeApi.getBusinesstypePage //
})
@ -79,8 +92,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:businesstype:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:businesstype:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:businesstype:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +141,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

9
src/views/wms/carrier/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="CarrierRules"
:formAllSchemas="Carrier.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Carrier.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="CarrierApi.updateCarrier"
:apiCreate="CarrierApi.createCarrier"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as CarrierApi from '@/api/wms/carrier'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Carrier, CarrierRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:carrier:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:carrier:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:carrier:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

4
src/views/wms/condition/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="ConditionApi.updateCondition"
:apiCreate="ConditionApi.createCondition"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:condition:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:condition:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:condition:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

4
src/views/wms/configuration/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="ConfigurationApi.updateConfiguration"
:apiCreate="ConfigurationApi.createConfiguration"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:configuration:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:configuration:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:configuration:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

4
src/views/wms/configurationsetting/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="ConfigurationsettingApi.updateConfigurationsetting"
:apiCreate="ConfigurationsettingApi.createConfigurationsetting"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:configurationsetting:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:configurationsetting:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:configurationsetting:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

162
src/views/wms/currencyexchange/CurrencyexchangeForm.vue

@ -1,162 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="货币" prop="currency">
<el-input v-model="formData.currency" placeholder="请输入货币" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="基础货币" prop="basiccurrency">
<el-input v-model="formData.basiccurrency" placeholder="请输入基础货币" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="比率" prop="rate">
<el-input v-model="formData.rate" placeholder="请输入比率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import * as CurrencyexchangeApi from '@/api/wms/currencyexchange'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
currency: undefined,
basiccurrency: undefined,
rate: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
currency: [{ required: true, message: '货币不能为空', trigger: 'blur' }],
basiccurrency: [{ required: true, message: '基础货币不能为空', trigger: 'blur' }],
rate: [{ required: true, message: '比率不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await CurrencyexchangeApi.getCurrencyexchange(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as CurrencyexchangeApi.CurrencyexchangeVO
if (formType.value === 'create') {
await CurrencyexchangeApi.createCurrencyexchange(data)
message.success(t('common.createSuccess'))
} else {
await CurrencyexchangeApi.updateCurrencyexchange(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
currency: undefined,
basiccurrency: undefined,
rate: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

9
src/views/wms/currencyexchange/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="CurrencyexchangeRules"
:formAllSchemas="Currencyexchange.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Currencyexchange.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="CurrencyexchangeApi.updateCurrencyexchange"
:apiCreate="CurrencyexchangeApi.createCurrencyexchange"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as CurrencyexchangeApi from '@/api/wms/currencyexchange'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Currencyexchange, CurrencyexchangeRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:currencyexchange:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:currencyexchange:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:currencyexchange:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

261
src/views/wms/customer/CustomerForm.vue

@ -1,261 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="简称" prop="shortName">
<el-input v-model="formData.shortName" placeholder="请输入简称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地址" prop="address">
<el-input v-model="formData.address" placeholder="请输入地址" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="国家" prop="country">
<el-input v-model="formData.country" placeholder="请输入国家" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="城市" prop="city">
<el-input v-model="formData.city" placeholder="请输入城市" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电话" prop="phone">
<el-input v-model="formData.phone" placeholder="请输入电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="传真" prop="fax">
<el-input v-model="formData.fax" placeholder="请输入传真" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮编" prop="postId">
<el-input v-model="formData.postId" placeholder="请输入邮编" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人" prop="contacts">
<el-input v-model="formData.contacts" placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="银行" prop="bank">
<el-input v-model="formData.bank" placeholder="请输入银行" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="币种" prop="currency">
<el-select v-model="formData.currency" placeholder="请选择币种">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CURRENCY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="税率" prop="taxRate">
<el-input v-model="formData.taxRate" placeholder="请输入税率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CUSTOMER_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as CustomerApi from '@/api/wms/customer'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
shortName: undefined,
address: undefined,
country: undefined,
city: undefined,
phone: undefined,
fax: undefined,
postId: undefined,
contacts: undefined,
bank: undefined,
currency: undefined,
taxRate: undefined,
type: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
shortName: [{ required: true, message: '简称不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await CustomerApi.getCustomer(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as CustomerApi.CustomerVO
if (formType.value === 'create') {
await CustomerApi.createCustomer(data)
message.success(t('common.createSuccess'))
} else {
await CustomerApi.updateCustomer(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
shortName: undefined,
address: undefined,
country: undefined,
city: undefined,
phone: undefined,
fax: undefined,
postId: undefined,
contacts: undefined,
bank: undefined,
currency: undefined,
taxRate: undefined,
type: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

9
src/views/wms/customer/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="CustomerRules"
:formAllSchemas="Customer.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Customer.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="CustomerApi.updateCustomer"
:apiCreate="CustomerApi.createCustomer"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as CustomerApi from '@/api/wms/customer'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Customer, CustomerRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:customer:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:customer:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:customer:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

217
src/views/wms/customerdock/CustomerdockForm.vue

@ -1,217 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="城市" prop="city">
<el-input v-model="formData.city" placeholder="请输入城市" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地址" prop="address">
<el-input v-model="formData.address" placeholder="请输入地址" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人姓名" prop="contactPerson">
<el-input v-model="formData.contactPerson" placeholder="请输入联系人姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人电话" prop="contactPhone">
<el-input v-model="formData.contactPhone" placeholder="请输入联系人电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户代码" prop="customerCode">
<el-input v-model="formData.customerCode" placeholder="请输入客户代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="仓库" prop="warehouseCode">
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="默认库位" prop="defaultLocationCode">
<el-input v-model="formData.defaultLocationCode" placeholder="请输入默认库位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import * as CustomerdockApi from '@/api/wms/customerdock'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
city: undefined,
address: undefined,
contactPerson: undefined,
contactPhone: undefined,
customerCode: undefined,
warehouseCode: undefined,
defaultLocationCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
customerCode: [{ required: true, message: '客户代码不能为空', trigger: 'blur' }],
defaultLocationCode: [{ required: true, message: '默认库位不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await CustomerdockApi.getCustomerdock(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as CustomerdockApi.CustomerdockVO
if (formType.value === 'create') {
await CustomerdockApi.createCustomerdock(data)
message.success(t('common.createSuccess'))
} else {
await CustomerdockApi.updateCustomerdock(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
city: undefined,
address: undefined,
contactPerson: undefined,
contactPhone: undefined,
customerCode: undefined,
warehouseCode: undefined,
defaultLocationCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

46
src/views/wms/customerdock/index.vue

@ -37,11 +37,11 @@
@success="getList"
:rules="CustomerdockRules"
:formAllSchemas="Customerdock.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:searchTableParams="searchTableParams"
:apiUpdate="CustomerdockApi.updateCustomerdock"
:apiCreate="CustomerdockApi.createCustomerdock"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,11 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as CustomerdockApi from '@/api/wms/customerdock'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as CustomerApi from '@/api/wms/customer'
import * as WarehouseApi from '@/api/wms/warehouse'
import * as LocationApi from '@/api/wms/location'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Customerdock, CustomerdockRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Customer, Customerdock, CustomerdockRules, Location, Warehouse ,} from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +69,24 @@ defineOptions({ name: 'Customerdock' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'customerCode',
searchTableTitle: '客户信息',
searchTableAllSchemas: Customer.allSchemas,
searchTablePage: CustomerApi.getCustomerPage
},{
formField: 'warehouseCode',
searchTableTitle: '仓库信息',
searchTableAllSchemas: Warehouse.allSchemas,
searchTablePage: WarehouseApi.getWarehousePage
},{
formField: 'defaultLocationCode',
searchTableTitle: '库位信息',
searchTableAllSchemas: Location.allSchemas,
searchTablePage: LocationApi.getLocationPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: CustomerdockApi.getCustomerdockPage //
})
@ -79,8 +99,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:customerdock:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:customerdock:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:customerdock:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +148,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

238
src/views/wms/customeritem/CustomeritemForm.vue

@ -1,238 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="客户代码" prop="customerCode">
<el-input v-model="formData.customerCode" placeholder="请输入客户代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料代码" prop="itemCode">
<el-input v-model="formData.itemCode" placeholder="请输入物料代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户物料代码" prop="customerItemCode">
<el-input v-model="formData.customerItemCode" placeholder="请输入客户物料代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户计量单位" prop="cusotmerUom">
<el-select v-model="formData.cusotmerUom" placeholder="请选择客户计量单位">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.UOM)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="转换率" prop="convertRate">
<el-input v-model="formData.convertRate" placeholder="请输入转换率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户包装单位" prop="packUnit">
<el-select v-model="formData.packUnit" placeholder="请选择客户包装单位">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PACK_UNIT)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户包装量" prop="packQty">
<el-input v-model="formData.packQty" placeholder="请输入客户包装量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户替代包装单位" prop="altPackUnit">
<el-select v-model="formData.altPackUnit" placeholder="请选择客户替代包装单位">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PACK_UNIT)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户替代包装量" prop="altPackQty">
<el-input v-model="formData.altPackQty" placeholder="请输入客户替代包装量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="每器具包装数" prop="packQtyOfContainer">
<el-input v-model="formData.packQtyOfContainer" placeholder="请输入每器具包装数" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as CustomeritemApi from '@/api/wms/customeritem'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
customerCode: undefined,
itemCode: undefined,
customerItemCode: undefined,
cusotmerUom: undefined,
convertRate: undefined,
packUnit: undefined,
packQty: undefined,
altPackUnit: undefined,
altPackQty: undefined,
packQtyOfContainer: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
customerCode: [{ required: true, message: '客户代码不能为空', trigger: 'blur' }],
itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'blur' }],
packUnit: [{ required: true, message: '客户包装单位不能为空', trigger: 'change' }],
packQty: [{ required: true, message: '客户包装量不能为空', trigger: 'blur' }],
packQtyOfContainer: [{ required: true, message: '每器具包装数不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await CustomeritemApi.getCustomeritem(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as CustomeritemApi.CustomeritemVO
if (formType.value === 'create') {
await CustomeritemApi.createCustomeritem(data)
message.success(t('common.createSuccess'))
} else {
await CustomeritemApi.updateCustomeritem(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
customerCode: undefined,
itemCode: undefined,
customerItemCode: undefined,
cusotmerUom: undefined,
convertRate: undefined,
packUnit: undefined,
packQty: undefined,
altPackUnit: undefined,
altPackQty: undefined,
packQtyOfContainer: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

38
src/views/wms/customeritem/index.vue

@ -37,11 +37,11 @@
@success="getList"
:rules="CustomeritemRules"
:formAllSchemas="Customeritem.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:searchTableParams="searchTableParams"
:apiUpdate="CustomeritemApi.updateCustomeritem"
:apiCreate="CustomeritemApi.createCustomeritem"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -55,8 +55,9 @@
import download from '@/utils/download'
import * as CustomeritemApi from '@/api/wms/customeritem'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as CustomerApi from '@/api/wms/customer'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Customeritem, CustomeritemRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Customer, Customeritem, CustomeritemRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +68,19 @@ defineOptions({ name: 'Customeritem' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'customerCode',
searchTableTitle: '客户信息',
searchTableAllSchemas: Customer.allSchemas,
searchTablePage: CustomerApi.getCustomerPage
},{
formField: 'itemCode',
searchTableTitle: '物料信息',
searchTableAllSchemas: ItemBasic.allSchemas,
searchTablePage: ItembasicApi.getItembasicPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: CustomeritemApi.getCustomeritemPage //
})
@ -79,8 +93,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:customeritem:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:customeritem:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:customeritem:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +142,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

224
src/views/wms/dock/DockForm.vue

@ -1,224 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="城市" prop="city">
<el-input v-model="formData.city" placeholder="请输入城市" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地址" prop="address">
<el-input v-model="formData.address" placeholder="请输入地址" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.DOCK_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="仓库代码" prop="warehouseCode">
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="默认库位代码" prop="defaultLocationCode">
<el-input v-model="formData.defaultLocationCode" placeholder="请输入默认库位代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人姓名" prop="contactPerson">
<el-input v-model="formData.contactPerson" placeholder="请输入联系人姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人电话" prop="contactPhone">
<el-input v-model="formData.contactPhone" placeholder="请输入联系人电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as DockApi from '@/api/wms/dock'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
city: undefined,
address: undefined,
type: undefined,
warehouseCode: undefined,
defaultLocationCode: undefined,
contactPerson: undefined,
contactPhone: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
type: [{ required: true, message: '类型不能为空', trigger: 'change' }],
warehouseCode: [{ required: true, message: '仓库代码不能为空', trigger: 'blur' }],
defaultLocationCode: [{ required: true, message: '默认库位代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await DockApi.getDock(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as DockApi.DockVO
if (formType.value === 'create') {
await DockApi.createDock(data)
message.success(t('common.createSuccess'))
} else {
await DockApi.updateDock(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
city: undefined,
address: undefined,
type: undefined,
warehouseCode: undefined,
defaultLocationCode: undefined,
contactPerson: undefined,
contactPhone: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

42
src/views/wms/dock/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="DockRules"
:formAllSchemas="Dock.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Dock.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="DockApi.updateDock"
:apiCreate="DockApi.createDock"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,10 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as DockApi from '@/api/wms/dock'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as WarehouseApi from '@/api/wms/warehouse'
import * as LocationApi from '@/api/wms/location'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Dock, DockRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Dock, DockRules, Location, Warehouse } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +68,19 @@ defineOptions({ name: 'Dock' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'warehouseCode',
searchTableTitle: '仓库信息',
searchTableAllSchemas: Warehouse.allSchemas,
searchTablePage: WarehouseApi.getWarehousePage
},{
formField: 'defaultLocationCode',
searchTableTitle: '库位信息',
searchTableAllSchemas: Location.allSchemas,
searchTablePage: LocationApi.getLocationPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: DockApi.getDockPage //
})
@ -79,8 +93,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:dock:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:dock:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:dock:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +142,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

4
src/views/wms/documentsetting/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="DocumentsettingApi.updateDocumentsetting"
:apiCreate="DocumentsettingApi.createDocumentsetting"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:documentsetting:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:documentsetting:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:documentsetting:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

4
src/views/wms/jobsetting/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="JobsettingApi.updateJobsetting"
:apiCreate="JobsettingApi.createJobsetting"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:jobsetting:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:jobsetting:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:jobsetting:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

290
src/views/wms/location/LocationForm.vue

@ -1,290 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="仓库代码" prop="warehouseCode">
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="区域代码" prop="areaCode">
<el-input v-model="formData.areaCode" placeholder="请输入区域代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="库位组代码" prop="locationGroupCode">
<el-input v-model="formData.locationGroupCode" placeholder="请输入库位组代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="ERP库位代码" prop="erpLocationCode">
<el-select v-model="formData.erpLocationCode" placeholder="请选择ERP库位代码">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.ERP_LOCATION)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.LOCATION_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="巷道" prop="aisle">
<el-input v-model="formData.aisle" placeholder="请输入巷道" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货架" prop="shelf">
<el-input v-model="formData.shelf" placeholder="请输入货架" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="行" prop="locationRow">
<el-input v-model="formData.locationRow" placeholder="请输入行" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="列" prop="locationColum">
<el-input v-model="formData.locationColum" placeholder="请输入列" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="拣料优先级" prop="pickPriority">
<el-input v-model="formData.pickPriority" placeholder="请输入拣料优先级" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最大承重" prop="maxWeight">
<el-input v-model="formData.maxWeight" placeholder="请输入最大承重" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最大面积" prop="maxArea">
<el-input v-model="formData.maxArea" placeholder="请输入最大面积" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最大体积" prop="maxVolume">
<el-input v-model="formData.maxVolume" placeholder="请输入最大体积" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="用户组代码" prop="userGroupCode">
<el-input v-model="formData.userGroupCode" placeholder="请输入用户组代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as LocationApi from '@/api/wms/location'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
warehouseCode: undefined,
areaCode: undefined,
locationGroupCode: undefined,
erpLocationCode: undefined,
type: undefined,
aisle: undefined,
shelf: undefined,
locationRow: undefined,
locationColum: undefined,
pickPriority: undefined,
maxWeight: undefined,
maxArea: undefined,
maxVolume: undefined,
userGroupCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
warehouseCode: [{ required: true, message: '仓库代码不能为空', trigger: 'blur' }],
areaCode: [{ required: true, message: '区域代码不能为空', trigger: 'blur' }],
locationGroupCode: [{ required: true, message: '库位组代码不能为空', trigger: 'blur' }],
erpLocationCode: [{ required: true, message: 'ERP库位代码不能为空', trigger: 'change' }],
type: [{ required: true, message: '类型不能为空', trigger: 'change' }],
pickPriority: [{ required: true, message: '拣料优先级不能为空', trigger: 'blur' }],
userGroupCode: [{ required: true, message: '用户组代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await LocationApi.getLocation(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as LocationApi.LocationVO
if (formType.value === 'create') {
await LocationApi.createLocation(data)
message.success(t('common.createSuccess'))
} else {
await LocationApi.updateLocation(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
warehouseCode: undefined,
areaCode: undefined,
locationGroupCode: undefined,
erpLocationCode: undefined,
type: undefined,
aisle: undefined,
shelf: undefined,
locationRow: undefined,
locationColum: undefined,
pickPriority: undefined,
maxWeight: undefined,
maxArea: undefined,
maxVolume: undefined,
userGroupCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

48
src/views/wms/location/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="LocationRules"
:formAllSchemas="Location.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Location.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="LocationApi.updateLocation"
:apiCreate="LocationApi.createLocation"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,11 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as LocationApi from '@/api/wms/location'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as WarehouseApi from '@/api/wms/warehouse'
import * as AreaApi from '@/api/wms/areabasic'
import * as LocationgroupApi from '@/api/wms/locationgroup'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Location, LocationRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Location, LocationRules, Locationgroup, Area, Warehouse } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +69,24 @@ defineOptions({ name: 'Location' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'warehouseCode',
searchTableTitle: '仓库信息',
searchTableAllSchemas: Warehouse.allSchemas,
searchTablePage: WarehouseApi.getWarehousePage
},{
formField: 'areaCode',
searchTableTitle: '库区信息',
searchTableAllSchemas: Area.allSchemas,
searchTablePage: AreaApi.getAreaPage
},{
formField: 'locationGroupCode',
searchTableTitle: '库位组信息',
searchTableAllSchemas: Locationgroup.allSchemas,
searchTablePage: LocationgroupApi.getLocationgroupPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: LocationApi.getLocationPage //
})
@ -79,8 +99,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:location:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:location:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:location:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +148,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

177
src/views/wms/locationgroup/LocationgroupForm.vue

@ -1,177 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="仓库代码" prop="warehouseCode">
<el-input v-model="formData.warehouseCode" placeholder="请输入仓库代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="区域代码" prop="areaCode">
<el-input v-model="formData.areaCode" placeholder="请输入区域代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import * as LocationgroupApi from '@/api/wms/locationgroup'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
warehouseCode: undefined,
areaCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
warehouseCode: [{ required: true, message: '仓库代码不能为空', trigger: 'blur' }],
areaCode: [{ required: true, message: '区域代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await LocationgroupApi.getLocationgroup(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as LocationgroupApi.LocationgroupVO
if (formType.value === 'create') {
await LocationgroupApi.createLocationgroup(data)
message.success(t('common.createSuccess'))
} else {
await LocationgroupApi.updateLocationgroup(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
warehouseCode: undefined,
areaCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

42
src/views/wms/locationgroup/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="LocationgroupRules"
:formAllSchemas="Locationgroup.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Locationgroup.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="LocationgroupApi.updateLocationgroup"
:apiCreate="LocationgroupApi.createLocationgroup"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,10 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as LocationgroupApi from '@/api/wms/locationgroup'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as WarehouseApi from '@/api/wms/warehouse'
import * as AreaApi from '@/api/wms/areabasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Locationgroup, LocationgroupRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Area, Locationgroup, LocationgroupRules, Warehouse } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +68,19 @@ defineOptions({ name: 'Locationgroup' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'warehouseCode',
searchTableTitle: '仓库信息',
searchTableAllSchemas: Warehouse.allSchemas,
searchTablePage: WarehouseApi.getWarehousePage
},{
formField: 'areaCode',
searchTableTitle: '库区信息',
searchTableAllSchemas: Area.allSchemas,
searchTablePage: AreaApi.getAreaPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: LocationgroupApi.getLocationgroupPage //
})
@ -79,8 +93,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:locationgroup:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:locationgroup:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:locationgroup:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +142,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

9
src/views/wms/owner/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="OwnerRules"
:formAllSchemas="Owner.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Owner.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="OwnerApi.updateOwner"
:apiCreate="OwnerApi.createOwner"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as OwnerApi from '@/api/wms/owner'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Owner, OwnerRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:owner:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:owner:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:owner:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

4
src/views/wms/paramsetting/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="ParamsettingApi.updateParamsetting"
:apiCreate="ParamsettingApi.createParamsetting"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:paramsetting:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:paramsetting:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:paramsetting:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

191
src/views/wms/process/ProcessForm.vue

@ -1,191 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PROCESS_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车间代码" prop="workshopCode">
<el-input v-model="formData.workshopCode" placeholder="请输入车间代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产线代码" prop="productionLineCode">
<el-input v-model="formData.productionLineCode" placeholder="请输入生产线代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as ProcessApi from '@/api/wms/process'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
type: undefined,
workshopCode: undefined,
productionLineCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
workshopCode: [{ required: true, message: '车间代码不能为空', trigger: 'blur' }],
productionLineCode: [{ required: true, message: '生产线代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await ProcessApi.getProcess(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as ProcessApi.ProcessVO
if (formType.value === 'create') {
await ProcessApi.createProcess(data)
message.success(t('common.createSuccess'))
} else {
await ProcessApi.updateProcess(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
type: undefined,
workshopCode: undefined,
productionLineCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

42
src/views/wms/process/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="ProcessRules"
:formAllSchemas="Process.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Process.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="ProcessApi.updateProcess"
:apiCreate="ProcessApi.createProcess"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,10 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as ProcessApi from '@/api/wms/process'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as WorkshopApi from '@/api/wms/workshop'
import * as ProductionlineApi from '@/api/wms/productionline'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Process, ProcessRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Process, ProcessRules, Productionline, Workshop } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +68,19 @@ defineOptions({ name: 'Process' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'workshopCode',
searchTableTitle: '车间信息',
searchTableAllSchemas: Workshop.allSchemas,
searchTablePage: WorkshopApi.getWorkshopPage
},{
formField: 'productionLineCode',
searchTableTitle: '生产线信息',
searchTableAllSchemas: Productionline.allSchemas,
searchTablePage: ProductionlineApi.getProductionlinePage
}])
const { tableObject, tableMethods } = useTable({
getListApi: ProcessApi.getProcessPage //
})
@ -79,8 +93,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:process:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:process:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:process:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +142,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

199
src/views/wms/productionline/ProductionlineForm.vue

@ -1,199 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PRODUCTION_LINE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车间代码" prop="workshopCode">
<el-input v-model="formData.workshopCode" placeholder="请输入车间代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="原料库位" prop="rawLocationCode">
<el-input v-model="formData.rawLocationCode" placeholder="请输入原料库位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="成品库位" prop="fgLocationCode">
<el-input v-model="formData.fgLocationCode" placeholder="请输入成品库位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as ProductionlineApi from '@/api/wms/productionline'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
type: undefined,
workshopCode: undefined,
rawLocationCode: undefined,
fgLocationCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
type: [{ required: true, message: '类型不能为空', trigger: 'change' }],
workshopCode: [{ required: true, message: '车间代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await ProductionlineApi.getProductionline(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as ProductionlineApi.ProductionlineVO
if (formType.value === 'create') {
await ProductionlineApi.createProductionline(data)
message.success(t('common.createSuccess'))
} else {
await ProductionlineApi.updateProductionline(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
type: undefined,
workshopCode: undefined,
rawLocationCode: undefined,
fgLocationCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

47
src/views/wms/productionline/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="ProductionlineRules"
:formAllSchemas="Productionline.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Productionline.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="ProductionlineApi.updateProductionline"
:apiCreate="ProductionlineApi.createProductionline"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,10 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as ProductionlineApi from '@/api/wms/productionline'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as WorkshopApi from '@/api/wms/workshop'
import * as LocationApi from '@/api/wms/location'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Productionline, ProductionlineRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Productionline, ProductionlineRules, Location, Workshop } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +68,24 @@ defineOptions({ name: 'Productionline' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'workshopCode',
searchTableTitle: '车间信息',
searchTableAllSchemas: Workshop.allSchemas,
searchTablePage: WorkshopApi.getWorkshopPage
},{
formField: 'rawLocationCode',
searchTableTitle: '库位信息',
searchTableAllSchemas: Location.allSchemas,
searchTablePage: LocationApi.getLocationPage
},{
formField: 'fgLocationCode',
searchTableTitle: '库位信息',
searchTableAllSchemas: Location.allSchemas,
searchTablePage: LocationApi.getLocationPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: ProductionlineApi.getProductionlinePage //
})
@ -79,8 +98,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:productionline:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:productionline:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:productionline:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +147,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

167
src/views/wms/project/ProjectForm.vue

@ -1,167 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户代码" prop="customerCode">
<el-input v-model="formData.customerCode" placeholder="请输入客户代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import * as ProjectApi from '@/api/wms/project'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
customerCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await ProjectApi.getProject(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as ProjectApi.ProjectVO
if (formType.value === 'create') {
await ProjectApi.createProject(data)
message.success(t('common.createSuccess'))
} else {
await ProjectApi.updateProject(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
customerCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

34
src/views/wms/project/index.vue

@ -37,11 +37,11 @@
@success="getList"
:rules="ProjectRules"
:formAllSchemas="Project.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:searchTableParams="searchTableParams"
:apiUpdate="ProjectApi.updateProject"
:apiCreate="ProjectApi.createProject"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,9 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as ProjectApi from '@/api/wms/project'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as CustomerApi from '@/api/wms/customer'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Project, ProjectRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Project, ProjectRules, Customer } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +67,14 @@ defineOptions({ name: 'Project' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'customerCode',
searchTableTitle: '客户信息',
searchTableAllSchemas: Customer.allSchemas,
searchTablePage: CustomerApi.getCustomerPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: ProjectApi.getProjectPage //
})
@ -79,8 +87,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:project:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:project:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:project:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +136,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

177
src/views/wms/purchaseprice/PurchasepriceForm.vue

@ -1,177 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="供应商代码" prop="supplierCode">
<el-input v-model="formData.supplierCode" placeholder="请输入供应商代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料代码" prop="itemCode">
<el-input v-model="formData.itemCode" placeholder="请输入物料代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货币" prop="currency">
<el-select v-model="formData.currency" placeholder="请选择货币">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CURRENCY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="价格" prop="price">
<el-input v-model="formData.price" placeholder="请输入价格" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as PurchasepriceApi from '@/api/wms/purchaseprice'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
supplierCode: undefined,
itemCode: undefined,
currency: undefined,
price: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
supplierCode: [{ required: true, message: '供应商代码不能为空', trigger: 'blur' }],
itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'blur' }],
currency: [{ required: true, message: '货币不能为空', trigger: 'change' }],
price: [{ required: true, message: '价格不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await PurchasepriceApi.getPurchaseprice(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as PurchasepriceApi.PurchasepriceVO
if (formType.value === 'create') {
await PurchasepriceApi.createPurchaseprice(data)
message.success(t('common.createSuccess'))
} else {
await PurchasepriceApi.updatePurchaseprice(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
supplierCode: undefined,
itemCode: undefined,
currency: undefined,
price: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

40
src/views/wms/purchaseprice/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="PurchasepriceRules"
:formAllSchemas="Purchaseprice.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Purchaseprice.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="PurchasepriceApi.updatePurchaseprice"
:apiCreate="PurchasepriceApi.createPurchaseprice"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -55,8 +55,9 @@
import download from '@/utils/download'
import * as PurchasepriceApi from '@/api/wms/purchaseprice'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as SupplierApi from '@/api/wms/supplier'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Purchaseprice, PurchasepriceRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Purchaseprice, PurchasepriceRules, ItemBasic, Supplier } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +68,19 @@ defineOptions({ name: 'Purchaseprice' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'supplierCode',
searchTableTitle: '供应商信息',
searchTableAllSchemas: Supplier.allSchemas,
searchTablePage: SupplierApi.getSupplierPage
},{
formField: 'itemCode',
searchTableTitle: '物料信息',
searchTableAllSchemas: ItemBasic.allSchemas,
searchTablePage: ItembasicApi.getItembasicPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: PurchasepriceApi.getPurchasepricePage //
})
@ -79,8 +93,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:purchaseprice:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:purchaseprice:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:purchaseprice:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +142,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

4
src/views/wms/recordsetting/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="RecordsettingApi.updateRecordsetting"
:apiCreate="RecordsettingApi.createRecordsetting"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:recordsetting:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:recordsetting:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:recordsetting:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

4
src/views/wms/requestsetting/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="RequestsettingApi.updateRequestsetting"
:apiCreate="RequestsettingApi.createRequestsetting"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:requestsetting:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:requestsetting:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:requestsetting:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

4
src/views/wms/rule/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="RuleApi.updateRule"
:apiCreate="RuleApi.createRule"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:rule:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:rule:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:rule:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

177
src/views/wms/saleprice/SalepriceForm.vue

@ -1,177 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="客户代码" prop="customercode">
<el-input v-model="formData.customercode" placeholder="请输入客户代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料代码" prop="itemcode">
<el-input v-model="formData.itemcode" placeholder="请输入物料代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货币" prop="currency">
<el-select v-model="formData.currency" placeholder="请选择货币">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CURRENCY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="价格" prop="price">
<el-input v-model="formData.price" placeholder="请输入价格" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as SalepriceApi from '@/api/wms/saleprice'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
customercode: undefined,
itemcode: undefined,
currency: undefined,
price: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
customercode: [{ required: true, message: '客户代码不能为空', trigger: 'blur' }],
itemcode: [{ required: true, message: '物料代码不能为空', trigger: 'blur' }],
currency: [{ required: true, message: '货币不能为空', trigger: 'change' }],
price: [{ required: true, message: '价格不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await SalepriceApi.getSaleprice(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as SalepriceApi.SalepriceVO
if (formType.value === 'create') {
await SalepriceApi.createSaleprice(data)
message.success(t('common.createSuccess'))
} else {
await SalepriceApi.updateSaleprice(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
customercode: undefined,
itemcode: undefined,
currency: undefined,
price: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

38
src/views/wms/saleprice/index.vue

@ -37,11 +37,11 @@
@success="getList"
:rules="SalepriceRules"
:formAllSchemas="Saleprice.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:searchTableParams="searchTableParams"
:apiUpdate="SalepriceApi.updateSaleprice"
:apiCreate="SalepriceApi.createSaleprice"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -55,8 +55,9 @@
import download from '@/utils/download'
import * as SalepriceApi from '@/api/wms/saleprice'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as CustomerApi from '@/api/wms/customer'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Saleprice, SalepriceRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Saleprice, SalepriceRules, ItemBasic, Customer } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +68,19 @@ defineOptions({ name: 'Saleprice' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'customerCode',
searchTableTitle: '客户信息',
searchTableAllSchemas: Customer.allSchemas,
searchTablePage: CustomerApi.getCustomerPage
},{
formField: 'itemCode',
searchTableTitle: '物料信息',
searchTableAllSchemas: ItemBasic.allSchemas,
searchTablePage: ItembasicApi.getItembasicPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: SalepriceApi.getSalepricePage //
})
@ -79,8 +93,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:saleprice:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:saleprice:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:saleprice:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +142,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

9
src/views/wms/shift/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="ShiftRules"
:formAllSchemas="Shift.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Shift.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="ShiftApi.updateShift"
:apiCreate="ShiftApi.createShift"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as ShiftApi from '@/api/wms/shift'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Shift, ShiftRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:shift:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:shift:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:shift:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

261
src/views/wms/supplier/SupplierForm.vue

@ -1,261 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="简称" prop="shortName">
<el-input v-model="formData.shortName" placeholder="请输入简称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地址" prop="address">
<el-input v-model="formData.address" placeholder="请输入地址" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="国家" prop="country">
<el-input v-model="formData.country" placeholder="请输入国家" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="城市" prop="city">
<el-input v-model="formData.city" placeholder="请输入城市" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电话" prop="phone">
<el-input v-model="formData.phone" placeholder="请输入电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="传真" prop="fax">
<el-input v-model="formData.fax" placeholder="请输入传真" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮编" prop="postId">
<el-input v-model="formData.postId" placeholder="请输入邮编" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人" prop="contacts">
<el-input v-model="formData.contacts" placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="银行" prop="bank">
<el-input v-model="formData.bank" placeholder="请输入银行" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="币种" prop="currency">
<el-select v-model="formData.currency" placeholder="请选择币种">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CURRENCY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="税率" prop="taxRate">
<el-input v-model="formData.taxRate" placeholder="请输入税率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.SUPPLIER_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as SupplierApi from '@/api/wms/supplier'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
shortName: undefined,
address: undefined,
country: undefined,
city: undefined,
phone: undefined,
fax: undefined,
postId: undefined,
contacts: undefined,
bank: undefined,
currency: undefined,
taxRate: undefined,
type: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
shortName: [{ required: true, message: '简称不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await SupplierApi.getSupplier(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as SupplierApi.SupplierVO
if (formType.value === 'create') {
await SupplierApi.createSupplier(data)
message.success(t('common.createSuccess'))
} else {
await SupplierApi.updateSupplier(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
shortName: undefined,
address: undefined,
country: undefined,
city: undefined,
phone: undefined,
fax: undefined,
postId: undefined,
contacts: undefined,
bank: undefined,
currency: undefined,
taxRate: undefined,
type: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

9
src/views/wms/supplier/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="SupplierRules"
:formAllSchemas="Supplier.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Supplier.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="SupplierApi.updateSupplier"
:apiCreate="SupplierApi.createSupplier"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as SupplierApi from '@/api/wms/supplier'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Supplier, SupplierRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:supplier:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:supplier:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:supplier:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

268
src/views/wms/supplieritem/SupplieritemForm.vue

@ -1,268 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="供应商代码" prop="supplierCode">
<el-input v-model="formData.supplierCode" placeholder="请输入供应商代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料代码" prop="itemCode">
<el-input v-model="formData.itemCode" placeholder="请输入物料代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商物料代码" prop="supplierItemCode">
<el-input v-model="formData.supplierItemCode" placeholder="请输入供应商物料代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商计量单位" prop="supplierUom">
<el-select v-model="formData.supplierUom" placeholder="请选择供应商计量单位">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.UOM)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="转换率" prop="convertRate">
<el-input v-model="formData.convertRate" placeholder="请输入转换率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商包装单位" prop="packUnit">
<el-select v-model="formData.packUnit" placeholder="请选择供应商包装单位">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PACK_UNIT)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商包装量" prop="packQty">
<el-input v-model="formData.packQty" placeholder="请输入供应商包装量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商替代包装单位" prop="altPackUnit">
<el-select v-model="formData.altPackUnit" placeholder="请选择供应商替代包装单位">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.PACK_UNIT)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商替代包装量" prop="altPackQty">
<el-input v-model="formData.altPackQty" placeholder="请输入供应商替代包装量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="每器具包装数" prop="packQtyOfContainer">
<el-input v-model="formData.packQtyOfContainer" placeholder="请输入每器具包装数" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="默认收货仓库" prop="defaultWarehouseCode">
<el-input v-model="formData.defaultWarehouseCode" placeholder="请输入默认收货仓库" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="默认收货库位" prop="defaultLocationCode">
<el-input v-model="formData.defaultLocationCode" placeholder="请输入默认收货库位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结算方式" prop="settlementType">
<el-select v-model="formData.settlementType" placeholder="请选择结算方式">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.SETTLEMENT_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as SupplieritemApi from '@/api/wms/supplieritem'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
supplierCode: undefined,
itemCode: undefined,
supplierItemCode: undefined,
supplierUom: undefined,
convertRate: undefined,
packUnit: undefined,
packQty: undefined,
altPackUnit: undefined,
altPackQty: undefined,
packQtyOfContainer: undefined,
defaultWarehouseCode: undefined,
defaultLocationCode: undefined,
settlementType: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
supplierCode: [{ required: true, message: '供应商代码不能为空', trigger: 'blur' }],
itemCode: [{ required: true, message: '物料代码不能为空', trigger: 'blur' }],
packUnit: [{ required: true, message: '供应商包装单位不能为空', trigger: 'change' }],
packQty: [{ required: true, message: '供应商包装量不能为空', trigger: 'blur' }],
packQtyOfContainer: [{ required: true, message: '每器具包装数不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await SupplieritemApi.getSupplieritem(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as SupplieritemApi.SupplieritemVO
if (formType.value === 'create') {
await SupplieritemApi.createSupplieritem(data)
message.success(t('common.createSuccess'))
} else {
await SupplieritemApi.updateSupplieritem(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
supplierCode: undefined,
itemCode: undefined,
supplierItemCode: undefined,
supplierUom: undefined,
convertRate: undefined,
packUnit: undefined,
packQty: undefined,
altPackUnit: undefined,
altPackQty: undefined,
packQtyOfContainer: undefined,
defaultWarehouseCode: undefined,
defaultLocationCode: undefined,
settlementType: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

52
src/views/wms/supplieritem/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="SupplieritemRules"
:formAllSchemas="Supplieritem.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Supplieritem.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="SupplieritemApi.updateSupplieritem"
:apiCreate="SupplieritemApi.createSupplieritem"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -55,8 +55,11 @@
import download from '@/utils/download'
import * as SupplieritemApi from '@/api/wms/supplieritem'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as SupplierApi from '@/api/wms/supplier'
import * as LocationApi from '@/api/wms/location'
import * as WarehouseApi from '@/api/wms/warehouse'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Supplieritem, SupplieritemRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Supplieritem, SupplieritemRules, ItemBasic, Supplier, Warehouse ,Location} from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +70,29 @@ defineOptions({ name: 'Supplieritem' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'supplierCode',
searchTableTitle: '供应商信息',
searchTableAllSchemas: Supplier.allSchemas,
searchTablePage: SupplierApi.getSupplierPage
},{
formField: 'itemCode',
searchTableTitle: '物料信息',
searchTableAllSchemas: ItemBasic.allSchemas,
searchTablePage: ItembasicApi.getItembasicPage
},{
formField: 'defaultWarehouseCode',
searchTableTitle: '仓库信息',
searchTableAllSchemas: Warehouse.allSchemas,
searchTablePage: WarehouseApi.getWarehousePage
},{
formField: 'defaultLocationCode',
searchTableTitle: '库位信息',
searchTableAllSchemas: Location.allSchemas,
searchTablePage: LocationApi.getLocationPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: SupplieritemApi.getSupplieritemPage //
})
@ -79,8 +105,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:supplieritem:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:supplieritem:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:supplieritem:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +154,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

168
src/views/wms/systemcalendar/SystemcalendarForm.vue

@ -1,168 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="模块" prop="module">
<el-input v-model="formData.module" placeholder="请输入模块" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="formData.startTime"
type="date"
value-format="x"
placeholder="选择开始时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束时间" prop="stopTime">
<el-date-picker
v-model="formData.stopTime"
type="date"
value-format="x"
placeholder="选择结束时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import * as SystemcalendarApi from '@/api/wms/systemcalendar'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
module: undefined,
startTime: undefined,
stopTime: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
module: [{ required: true, message: '模块不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await SystemcalendarApi.getSystemcalendar(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as SystemcalendarApi.SystemcalendarVO
if (formType.value === 'create') {
await SystemcalendarApi.createSystemcalendar(data)
message.success(t('common.createSuccess'))
} else {
await SystemcalendarApi.updateSystemcalendar(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
module: undefined,
startTime: undefined,
stopTime: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

9
src/views/wms/systemcalendar/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="SystemcalendarRules"
:formAllSchemas="Systemcalendar.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Systemcalendar.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="SystemcalendarApi.updateSystemcalendar"
:apiCreate="SystemcalendarApi.createSystemcalendar"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as SystemcalendarApi from '@/api/wms/systemcalendar'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Systemcalendar, SystemcalendarRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:systemcalendar:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:systemcalendar:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:systemcalendar:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

9
src/views/wms/team/index.vue

@ -36,12 +36,11 @@
ref="basicFormRef"
@success="getList"
:rules="TeamRules"
:formAllSchemas="Team.allSchemas"
searchTableTitle="物料基础信息"
:formAllSchemas="Team.allSchemas"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="TeamApi.updateTeam"
:apiCreate="TeamApi.createTeam"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,7 +53,6 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as TeamApi from '@/api/wms/team'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Team, TeamRules, ItemBasic } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -79,8 +77,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:team:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:team:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:team:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

4
src/views/wms/transactiontype/index.vue

@ -42,6 +42,7 @@
:searchTablePage="ItembasicApi.getItembasicPage"
:apiUpdate="TransactiontypeApi.updateTransactiontype"
:apiCreate="TransactiontypeApi.createTransactiontype"
:isBusiness="false"
/>
<!-- 详情 -->
@ -79,8 +80,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:transactiontype:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:transactiontype:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:transactiontype:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

173
src/views/wms/warehouse/WarehouseForm.vue

@ -1,173 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.WAREHOUSE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as WarehouseApi from '@/api/wms/warehouse'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
type: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await WarehouseApi.getWarehouse(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as WarehouseApi.WarehouseVO
if (formType.value === 'create') {
await WarehouseApi.createWarehouse(data)
message.success(t('common.createSuccess'))
} else {
await WarehouseApi.updateWarehouse(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
type: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

12
src/views/wms/warehouse/index.vue

@ -36,12 +36,10 @@
ref="basicFormRef"
@success="getList"
:rules="WarehouseRules"
:formAllSchemas="Warehouse.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Warehouse.allSchemas"
:apiUpdate="WarehouseApi.updateWarehouse"
:apiCreate="WarehouseApi.createWarehouse"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +52,8 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as WarehouseApi from '@/api/wms/warehouse'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Warehouse, WarehouseRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Warehouse, WarehouseRules } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -79,8 +76,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:warehouse:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:warehouse:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:warehouse:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

173
src/views/wms/workshop/WorkshopForm.vue

@ -1,173 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.WORKSHOP_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions, getIntDictOptions } from '@/utils/dict'
import * as WorkshopApi from '@/api/wms/workshop'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
type: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await WorkshopApi.getWorkshop(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as WorkshopApi.WorkshopVO
if (formType.value === 'create') {
await WorkshopApi.createWorkshop(data)
message.success(t('common.createSuccess'))
} else {
await WorkshopApi.updateWorkshop(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
type: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

12
src/views/wms/workshop/index.vue

@ -36,12 +36,10 @@
ref="basicFormRef"
@success="getList"
:rules="WorkshopRules"
:formAllSchemas="Workshop.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Workshop.allSchemas"
:apiUpdate="WorkshopApi.updateWorkshop"
:apiCreate="WorkshopApi.createWorkshop"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +52,8 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as WorkshopApi from '@/api/wms/workshop'
import * as ItembasicApi from '@/api/wms/itembasic'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Workshop, WorkshopRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Workshop, WorkshopRules } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -79,8 +76,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:workshop:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:workshop:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:workshop:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',

211
src/views/wms/workstation/WorkstationForm.vue

@ -1,211 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="代码" prop="code">
<el-input v-model="formData.code" placeholder="请输入代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="描述">
<Editor v-model="formData.description" height="150px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.WORK_STATION_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车间代码" prop="workshopCode">
<el-input v-model="formData.workshopCode" placeholder="请输入车间代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产线代码" prop="productionLineCode">
<el-input v-model="formData.productionLineCode" placeholder="请输入生产线代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="原料库位" prop="rawLocationCode">
<el-input v-model="formData.rawLocationCode" placeholder="请输入原料库位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="成品库位" prop="fgLocationCode">
<el-input v-model="formData.fgLocationCode" placeholder="请输入成品库位" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-select v-model="formData.available" placeholder="请选择是否可用">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.TRUE_FALSE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效时间" prop="activeTime">
<el-date-picker
v-model="formData.activeTime"
type="date"
value-format="x"
placeholder="选择生效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="失效时间" prop="expireTime">
<el-date-picker
v-model="formData.expireTime"
type="date"
value-format="x"
placeholder="选择失效时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import * as WorkstationApi from '@/api/wms/workstation'
import { log } from 'console'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
code: undefined,
name: undefined,
description: undefined,
type: undefined,
workshopCode: undefined,
productionLineCode: undefined,
rawLocationCode: undefined,
fgLocationCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
})
const formRules = reactive({
code: [{ required: true, message: '代码不能为空', trigger: 'blur' }],
workshopCode: [{ required: true, message: '车间代码不能为空', trigger: 'blur' }],
productionLineCode: [{ required: true, message: '生产线代码不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
console.log(dialogVisible.value);
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await WorkstationApi.getWorkstation(id)
console.log('formData.value=' + JSON.stringify(formData.value));
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as WorkstationApi.WorkstationVO
if (formType.value === 'create') {
await WorkstationApi.createWorkstation(data)
message.success(t('common.createSuccess'))
} else {
await WorkstationApi.updateWorkstation(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
code: undefined,
name: undefined,
description: undefined,
type: undefined,
workshopCode: undefined,
productionLineCode: undefined,
rawLocationCode: undefined,
fgLocationCode: undefined,
available: undefined,
activeTime: undefined,
expireTime: undefined,
remark: undefined
}
formRef.value?.resetFields()
}
</script>

53
src/views/wms/workstation/index.vue

@ -36,12 +36,12 @@
ref="basicFormRef"
@success="getList"
:rules="WorkstationRules"
:formAllSchemas="Workstation.allSchemas"
searchTableTitle="物料基础信息"
:searchTableAllSchemas="ItemBasic.allSchemas"
:searchTablePage="ItembasicApi.getItembasicPage"
:formAllSchemas="Workstation.allSchemas"
:searchTableParams="searchTableParams"
:apiUpdate="WorkstationApi.updateWorkstation"
:apiCreate="WorkstationApi.createWorkstation"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
@ -54,9 +54,11 @@
<script setup lang="ts">
import download from '@/utils/download'
import * as WorkstationApi from '@/api/wms/workstation'
import * as ItembasicApi from '@/api/wms/itembasic'
import * as LocationApi from '@/api/wms/location'
import * as WorkshopApi from '@/api/wms/workshop'
import * as ProductionlineApi from '@/api/wms/productionline'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import { Workstation, WorkstationRules, ItemBasic } from '@/utils/disposition/tableColumns'
import { Workstation, WorkstationRules, Location, Productionline, Workshop } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -67,6 +69,29 @@ defineOptions({ name: 'Workstation' })
const message = useMessage() //
const { t } = useI18n() //
//
const searchTableParams = ref([{
formField: 'workshopCode',
searchTableTitle: '车间信息',
searchTableAllSchemas: Workshop.allSchemas,
searchTablePage: WorkshopApi.getWorkshopPage
},{
formField: 'productionLineCode',
searchTableTitle: '生产线信息',
searchTableAllSchemas: Productionline.allSchemas,
searchTablePage: ProductionlineApi.getProductionlinePage
},{
formField: 'rawLocationCode',
searchTableTitle: '库位信息',
searchTableAllSchemas: Location.allSchemas,
searchTablePage: LocationApi.getLocationPage
},{
formField: 'fgLocationCode',
searchTableTitle: '库位信息',
searchTableAllSchemas: Location.allSchemas,
searchTablePage: LocationApi.getLocationPage
}])
const { tableObject, tableMethods } = useTable({
getListApi: WorkstationApi.getWorkstationPage //
})
@ -79,8 +104,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:workstation:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:workstation:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:workstation:export'}), //
// defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFreshBtn(null),//
// {
// label: '',
// name: 'zdy',
@ -129,6 +153,19 @@ const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
console.log(144, formField)
console.log(145, searchField)
console.log(146, val)
console.log(147, formRef)
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {

Loading…
Cancel
Save