lzq 2026-01-22 23:06:51 +08:00
parent fb8cd34f9b
commit ee3a206003
61 changed files with 1807 additions and 2501 deletions

View File

@ -1,10 +1,6 @@
# 应用名称 # 应用名称
VITE_APP_NAME=(开发环境)再昇云收运处平台 VITE_APP_NAME=(开发环境)再昇云收运处平台
# 后台服务地址 # 后台服务地址
# VITE_HTTP_PROXY_TARGET=http://localhost:10086 VITE_HTTP_PROXY_TARGET=http://localhost:10086
# VITE_HTTP_PROXY_TARGET=http://192.168.2.124:10086
VITE_HTTP_PROXY_TARGET=http://192.168.2.2:8808
# VITE_HTTP_PROXY_TARGET=https://s2.njzscloud.com/api/
# VITE_HTTP_PROXY_TARGET=https://chengdu.njzscloud.com/api
VITE_WS_PROXY_TARGET=ws://localhost:10086 VITE_WS_PROXY_TARGET=ws://localhost:10086

19
package-lock.json generated
View File

@ -81,7 +81,6 @@
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.27.1", "@babel/code-frame": "^7.27.1",
"@babel/generator": "^7.28.5", "@babel/generator": "^7.28.5",
@ -1064,7 +1063,6 @@
"integrity": "sha512-lLt8KLHyl7IClc3RqRpRikz15eCfTRlAWL9leVzPyg5N87FfKE/7EWgWvpiL/z4Tf3dQCIqQb88TmHE0JTIDvA==", "integrity": "sha512-lLt8KLHyl7IClc3RqRpRikz15eCfTRlAWL9leVzPyg5N87FfKE/7EWgWvpiL/z4Tf3dQCIqQb88TmHE0JTIDvA==",
"devOptional": true, "devOptional": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"c12": "^3.3.1", "c12": "^3.3.1",
"consola": "^3.4.2", "consola": "^3.4.2",
@ -1776,7 +1774,6 @@
"resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz",
"integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@types/lodash": "*" "@types/lodash": "*"
} }
@ -1794,7 +1791,6 @@
"integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"undici-types": "~7.16.0" "undici-types": "~7.16.0"
} }
@ -2448,7 +2444,6 @@
} }
], ],
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"baseline-browser-mapping": "^2.8.25", "baseline-browser-mapping": "^2.8.25",
"caniuse-lite": "^1.0.30001754", "caniuse-lite": "^1.0.30001754",
@ -3746,15 +3741,13 @@
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/lodash-es": { "node_modules/lodash-es": {
"version": "4.17.21", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/lodash-unified": { "node_modules/lodash-unified": {
"version": "1.0.3", "version": "1.0.3",
@ -4251,7 +4244,6 @@
"resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz", "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz",
"integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==", "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@vue/devtools-api": "^7.7.7" "@vue/devtools-api": "^7.7.7"
}, },
@ -4324,7 +4316,6 @@
} }
], ],
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"nanoid": "^3.3.11", "nanoid": "^3.3.11",
"picocolors": "^1.1.1", "picocolors": "^1.1.1",
@ -4943,7 +4934,6 @@
"integrity": "sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==", "integrity": "sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@adobe/css-tools": "~4.3.3", "@adobe/css-tools": "~4.3.3",
"debug": "^4.3.2", "debug": "^4.3.2",
@ -5024,7 +5014,6 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"devOptional": true, "devOptional": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@ -5082,7 +5071,6 @@
"integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
"devOptional": true, "devOptional": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
"tsserver": "bin/tsserver" "tsserver": "bin/tsserver"
@ -5545,7 +5533,6 @@
"integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==", "integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"esbuild": "^0.25.0", "esbuild": "^0.25.0",
"fdir": "^6.5.0", "fdir": "^6.5.0",
@ -5836,7 +5823,6 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@ -5856,7 +5842,6 @@
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz",
"integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.5.25", "@vue/compiler-dom": "3.5.25",
"@vue/compiler-sfc": "3.5.25", "@vue/compiler-sfc": "3.5.25",

View File

@ -43,7 +43,7 @@
<ElTableColumn label="账号" prop="username"/> <ElTableColumn label="账号" prop="username"/>
<ElTableColumn label="联系人" prop="nickname"/> <ElTableColumn label="联系人" prop="nickname"/>
<ElTableColumn label="身份类型" prop="identityCategoryTxt"/> <ElTableColumn label="身份类型" prop="identityCategoryTxt"/>
<ElTableColumn label="组织信息" prop="orgId"/> <ElTableColumn label="企业信息" prop="orgId"/>
<ElTableColumn label="客户姓名" prop="customerName"/> <ElTableColumn label="客户姓名" prop="customerName"/>
<ElTableColumn label="结算方式" prop="settlementWayTxt"/> <ElTableColumn label="结算方式" prop="settlementWayTxt"/>
<ElTableColumn label="是否管理员"> <ElTableColumn label="是否管理员">

View File

@ -8,18 +8,18 @@
<template #default="{formData}"> <template #default="{formData}">
<div class="form-items"> <div class="form-items">
<ElFormItem label="身份类型" prop="identityCategory"> <ElFormItem label="身份类型" prop="identityCategory">
<ElSelect v-model="formData.identityCategory" :disabled="status === 'view'" placeholder="身份类型"> <ElSelect v-model="formData.identityCategory" placeholder="身份类型">
<ElOption v-for="item in identityCategory" :key="item.val" :label="item.txt" :value="item.val"/> <ElOption v-for="item in identityCategory" :key="item.val" :label="item.txt" :value="item.val"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label="客户姓名" prop="customerName"> <ElFormItem label="客户姓名" prop="customerName">
<ElInput v-model="formData.customerName" :disabled="status === 'view'" placeholder="客户姓名"/> <ElInput v-model="formData.customerName" placeholder="客户姓名"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="联系电话" prop="phone"> <ElFormItem label="联系电话" prop="phone">
<ElInput v-model="formData.phone" :disabled="status === 'view'" placeholder="联系电话"/> <ElInput v-model="formData.phone" placeholder="联系电话"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="结算方式" prop="settlementWay"> <ElFormItem label="结算方式" prop="settlementWay">
<ElSelect v-model="formData.settlementWay" :disabled="status === 'view'" placeholder="结算方式"> <ElSelect v-model="formData.settlementWay" placeholder="结算方式">
<ElOption v-for="item in settlementWay" :key="item.val" :label="item.txt" :value="item.val"/> <ElOption v-for="item in settlementWay" :key="item.val" :label="item.txt" :value="item.val"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
@ -37,6 +37,7 @@ import {
identityCategory, identityCategory,
settlementWay, settlementWay,
} from '@/pages/cst/customer/constants.ts' } from '@/pages/cst/customer/constants.ts'
import type { ComponentExposed } from 'vue-component-type-helpers'
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
@ -45,13 +46,13 @@ const props = withDefaults(defineProps<{
research: () => { research: () => {
}, },
}) })
const formPanelIns = useTemplateRef<InstanceType<typeof AFormPanel>>('formPanel') const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const status = ref<'add' | 'view' | 'modify'>('add') const status = ref<'add' | 'modify'>('add')
const rules = reactive<FormRules<CustomerTypes.SearchCustomerResult>>({ const rules = reactive<FormRules<CustomerTypes.SearchCustomerResult>>({
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
userId: [ {required: true, message: '请填写用户', trigger: 'blur'} ], userId: [ {required: true, message: '请填写用户', trigger: 'blur'} ],
identityCategory: [ {required: true, message: '请填写身份类型', trigger: 'blur'} ], identityCategory: [ {required: true, message: '请填写身份类型', trigger: 'blur'} ],
orgId: [ {required: true, message: '请填写组织信息', trigger: 'blur'} ], orgId: [ {required: true, message: '请填写企业信息', trigger: 'blur'} ],
customerName: [ {required: true, message: '请填写客户姓名', trigger: 'blur'} ], customerName: [ {required: true, message: '请填写客户姓名', trigger: 'blur'} ],
phone: [ {required: true, message: '请填写客户联系电话', trigger: 'blur'} ], phone: [ {required: true, message: '请填写客户联系电话', trigger: 'blur'} ],
settlementWay: [ {required: true, message: '请填写结算方式', trigger: 'blur'} ], settlementWay: [ {required: true, message: '请填写结算方式', trigger: 'blur'} ],
@ -80,7 +81,7 @@ function doSubmit(data: CustomerTypes.SearchCustomerResult) {
if (status.value === 'add') { if (status.value === 'add') {
return CustomerApi.add(data) return CustomerApi.add(data)
.then(props.research) .then(props.research)
} else if (status.value === 'modify') { } else {
return CustomerApi.modify(data) return CustomerApi.modify(data)
.then(props.research) .then(props.research)
} }

View File

@ -9,7 +9,7 @@ declare global {
userId?: string userId?: string
// 身份类型多个身份多条数据PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方 // 身份类型多个身份多条数据PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方
identityCategory?: string identityCategory?: string
// 组织信息 Idcst_org.id // 企业信息 Idcst_org.id
orgId?: string orgId?: string
// 客户姓名 // 客户姓名
customerName?: string customerName?: string
@ -17,7 +17,7 @@ declare global {
phone?: string phone?: string
// 结算方式YueJie-->月结、YuE-->余额、XianFu-->现付 // 结算方式YueJie-->月结、YuE-->余额、XianFu-->现付
settlementWay?: string settlementWay?: string
// 是否管理员;是否为当前的组织管理员0-->否、1-->是 // 是否管理员;是否为当前的企业管理员0-->否、1-->是
manager?: boolean manager?: boolean
// 创建人 Idsys_user.id // 创建人 Idsys_user.id
creatorId?: string creatorId?: string
@ -38,7 +38,7 @@ declare global {
userId?: string userId?: string
// 身份类型多个身份多条数据PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方 // 身份类型多个身份多条数据PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方
identityCategory?: string identityCategory?: string
// 组织信息 Idcst_org.id // 企业信息 Idcst_org.id
orgId?: string orgId?: string
// 客户姓名 // 客户姓名
customerName?: string customerName?: string
@ -46,7 +46,7 @@ declare global {
phone?: string phone?: string
// 结算方式YueJie-->月结、YuE-->余额、XianFu-->现付 // 结算方式YueJie-->月结、YuE-->余额、XianFu-->现付
settlementWay?: string settlementWay?: string
// 是否管理员;是否为当前的组织管理员0-->否、1-->是 // 是否管理员;是否为当前的企业管理员0-->否、1-->是
manager?: boolean manager?: boolean
// 创建人 Idsys_user.id // 创建人 Idsys_user.id
creatorId?: string creatorId?: string
@ -67,7 +67,7 @@ declare global {
userId?: string userId?: string
// 身份类型多个身份多条数据PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方 // 身份类型多个身份多条数据PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方
identityCategory?: string identityCategory?: string
// 组织信息 Idcst_org.id // 企业信息 Idcst_org.id
orgId?: string orgId?: string
// 客户姓名 // 客户姓名
customerName?: string customerName?: string
@ -75,7 +75,7 @@ declare global {
phone?: string phone?: string
// 结算方式YueJie-->月结、YuE-->余额、XianFu-->现付 // 结算方式YueJie-->月结、YuE-->余额、XianFu-->现付
settlementWay?: string settlementWay?: string
// 是否管理员;是否为当前的组织管理员0-->否、1-->是 // 是否管理员;是否为当前的企业管理员0-->否、1-->是
manager?: boolean manager?: boolean
// 创建人 Idsys_user.id // 创建人 Idsys_user.id
creatorId?: string creatorId?: string
@ -96,7 +96,7 @@ declare global {
userId?: string userId?: string
// 身份类型多个身份多条数据PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方 // 身份类型多个身份多条数据PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方
identityCategory?: string identityCategory?: string
// 组织信息 Idcst_org.id // 企业信息 Idcst_org.id
orgId?: string orgId?: string
// 客户姓名 // 客户姓名
customerName?: string customerName?: string
@ -104,7 +104,7 @@ declare global {
phone?: string phone?: string
// 结算方式YueJie-->月结、YuE-->余额、XianFu-->现付 // 结算方式YueJie-->月结、YuE-->余额、XianFu-->现付
settlementWay?: string settlementWay?: string
// 是否管理员;是否为当前的组织管理员0-->否、1-->是 // 是否管理员;是否为当前的企业管理员0-->否、1-->是
manager?: boolean manager?: boolean
// 创建人 Idsys_user.id // 创建人 Idsys_user.id
creatorId?: string creatorId?: string

View File

@ -23,6 +23,14 @@
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/> <ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/>
</ElFormItem> </ElFormItem>
</template> </template>
<template #simpleSearchFormItem="{searchForm}">
<ElFormItem>
<ElInput v-model="searchForm.driverName" placeholder="司机姓名"/>
</ElFormItem>
<ElFormItem>
<ElInput v-model="searchForm.phone" placeholder="手机号"/>
</ElFormItem>
</template>
<template #columns> <template #columns>
<ElTableColumn label="司机名称" prop="driverName"/> <ElTableColumn label="司机名称" prop="driverName"/>
<ElTableColumn label="归属公司" prop="orgName"/> <ElTableColumn label="归属公司" prop="orgName"/>
@ -34,7 +42,7 @@
<ElTableColumn label="创建时间" prop="createTime"/> <ElTableColumn label="创建时间" prop="createTime"/>
<ElTableColumn label="修改时间" prop="modifyTime"/> <ElTableColumn label="修改时间" prop="modifyTime"/>
</template> </template>
<DriverForm ref="driverForm" @edit-succ="research"/> <DriverForm ref="driverForm" :research="research"/>
<DriverDetail ref="driverDetail" @edit-succ="research"/> <DriverDetail ref="driverDetail" @edit-succ="research"/>
</FormPage> </FormPage>
</template> </template>
@ -43,7 +51,8 @@
import DriverApi from '@/pages/cst/driver/driver-api.ts' import DriverApi from '@/pages/cst/driver/driver-api.ts'
import DriverForm from '@/pages/cst/driver/DriverForm.vue' import DriverForm from '@/pages/cst/driver/DriverForm.vue'
import DriverDetail from '@/pages/cst/driver/DriverDetail.vue' import DriverDetail from '@/pages/cst/driver/DriverDetail.vue'
import FormPage, { type ActionColumnType } from '@/components/page/FormPage.vue' import FormPage from '@/components/page/FormPage.vue'
import type { ActionColumnType } from '@/components/page/a-page-type.ts'
import type { ComponentExposed } from 'vue-component-type-helpers' import type { ComponentExposed } from 'vue-component-type-helpers'
const driverDetailIns = useTemplateRef<InstanceType<typeof DriverDetail>>('driverDetail') const driverDetailIns = useTemplateRef<InstanceType<typeof DriverDetail>>('driverDetail')

View File

@ -1,136 +1,81 @@
<template> <template>
<ElDialog v-model="showDialog" <AFormPanel
:close-on-click-modal="false" ref="formPanel"
destroy-on-close :details-loader="detailsLoader"
width="fit-content" :do-submit="doSubmit"
@close="dialogCloseHandler">
<ElForm :model="formData"
:rules="rules" :rules="rules"
ref="driverForm" :title="status === 'add' ? '新建司机信息' : '修改司机信息'"
class="form-panel" >
label-width="auto"> <template #default="{formData}">
<ElFormItem label-width="90" label="Id" prop="id"> <div class="form-items">
<ElFormItem label="Id" prop="id">
<ElInput <ElInput
v-model="formData.id" v-model="formData.id"
:disabled="status === 'view'"
placeholder="Id"/> placeholder="Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="归属用户 Idsys_user.id" prop="userId"> <ElFormItem label="归属用户 Idsys_user.id" prop="userId">
<ElInput <ElInput
v-model="formData.userId" v-model="formData.userId"
:disabled="status === 'view'"
placeholder="归属用户 Idsys_user.id"/> placeholder="归属用户 Idsys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="归属客户 Idcst_customer.id" prop="customerId"> <ElFormItem label="归属客户 Idcst_customer.id" prop="customerId">
<ElInput <ElInput
v-model="formData.customerId" v-model="formData.customerId"
:disabled="status === 'view'"
placeholder="归属客户 Idcst_customer.id"/> placeholder="归属客户 Idcst_customer.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="归属公司 Idcst_org.id" prop="orgId"> <ElFormItem label="归属公司 Idcst_org.id" prop="orgId">
<ElInput <ElInput
v-model="formData.orgId" v-model="formData.orgId"
:disabled="status === 'view'"
placeholder="归属公司 Idcst_org.id"/> placeholder="归属公司 Idcst_org.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="驾驶证编号" prop="drivingLicenceNo"> <ElFormItem label="驾驶证编号" prop="drivingLicenceNo">
<ElInput <ElInput
v-model="formData.drivingLicenceNo" v-model="formData.drivingLicenceNo"
:disabled="status === 'view'"
placeholder="驾驶证编号"/> placeholder="驾驶证编号"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="司机姓名" prop="driverName"> <ElFormItem label="司机姓名" prop="driverName">
<ElInput <ElInput
v-model="formData.driverName" v-model="formData.driverName"
:disabled="status === 'view'"
placeholder="司机姓名"/> placeholder="司机姓名"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="手机号" prop="phone"> <ElFormItem label="手机号" prop="phone">
<ElInput <ElInput
v-model="formData.phone" v-model="formData.phone"
:disabled="status === 'view'"
placeholder="手机号"/> placeholder="手机号"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="驾驶证图片" prop="drivingLicence"> <ElFormItem label="驾驶证图片" prop="drivingLicence">
<ElInput <ElInput
v-model="formData.drivingLicence" v-model="formData.drivingLicence"
:disabled="status === 'view'"
placeholder="驾驶证图片"/> placeholder="驾驶证图片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="驾驶证有效期" prop="licenceStartTime"> <ElFormItem label="驾驶证有效期" prop="licenceStartTime">
<ElInput <ElInput
v-model="formData.licenceStartTime" v-model="formData.licenceStartTime"
:disabled="status === 'view'"
placeholder="驾驶证有效期"/> placeholder="驾驶证有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="驾驶证有效期" prop="licenceEndTime"> <ElFormItem label="驾驶证有效期" prop="licenceEndTime">
<ElInput <ElInput
v-model="formData.licenceEndTime" v-model="formData.licenceEndTime"
:disabled="status === 'view'"
placeholder="驾驶证有效期"/> placeholder="驾驶证有效期"/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="忙碌中" prop="busy"> </div>
<ElInput
v-model="formData.busy"
:disabled="status === 'view'"
placeholder="忙碌中"/>
</ElFormItem> -->
<ElFormItem label-width="90" label="创建人 Idsys_user.id" prop="creatorId">
<ElInput
v-model="formData.creatorId"
:disabled="status === 'view'"
placeholder="创建人 Idsys_user.id"/>
</ElFormItem>
<ElFormItem label-width="90" label="修改人 Id sys_user.id" prop="modifierId">
<ElInput
v-model="formData.modifierId"
:disabled="status === 'view'"
placeholder="修改人 Id sys_user.id"/>
</ElFormItem>
<ElFormItem label-width="90" label="创建时间" prop="createTime">
<ElInput
v-model="formData.createTime"
:disabled="status === 'view'"
placeholder="创建时间"/>
</ElFormItem>
<ElFormItem label-width="90" label="修改时间" prop="modifyTime">
<ElInput
v-model="formData.modifyTime"
:disabled="status === 'view'"
placeholder="修改时间"/>
</ElFormItem>
<!-- <ElFormItem label-width="90" label="是否删除" prop="deleted">
<ElInput
v-model="formData.deleted"
:disabled="status === 'view'"
placeholder="是否删除"/>
</ElFormItem> -->
</ElForm>
<template #footer>
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import DriverApi from '@/pages/cst/driver/driver-api.ts' import DriverApi from '@/pages/cst/driver/driver-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import { import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
ElMessage, import type { ComponentExposed } from 'vue-component-type-helpers'
type FormInstance,
type FormRules,
} from 'element-plus'
const emits = defineEmits(['editSucc']) const props = withDefaults(defineProps<{
const showDialog = ref(false) research?: () => void
const submiting = ref(false) }>(), {
const status = ref<'add' | 'view' | 'modify'>('add') research: () => {
},
const driverFormIns = useTemplateRef<FormInstance>('driverForm') })
const formData = ref<DriverTypes.SearchDriverResult>({})
const rules = reactive<FormRules<DriverTypes.SearchDriverResult>>({ const rules = reactive<FormRules<DriverTypes.SearchDriverResult>>({
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
userId: [ {required: true, message: '请填写归属用户 Idsys_user.id', trigger: 'blur'} ], userId: [ {required: true, message: '请填写归属用户 Idsys_user.id', trigger: 'blur'} ],
@ -149,56 +94,44 @@ createTime: [{ required: true, message: '请填写创建时间', trigger: 'blur'
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ], modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
deleted: [ {required: true, message: '请填写是否删除', trigger: 'blur'} ], deleted: [ {required: true, message: '请填写是否删除', trigger: 'blur'} ],
}) })
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const status = ref<'add' | 'modify'>('add')
function dialogCloseHandler() { function detailsLoader(id?: string) {
formData.value = {} if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else {
status.value = 'modify'
return DriverApi
.detail(id!)
.then(res => res.data)
}
} }
function submitHandler() { function doSubmit(data: DriverTypes.SearchDriverResult) {
if (status.value === 'view') return if (status.value === 'add') {
submiting.value = true return DriverApi.add(data)
if (formData.value.id != null) { .then(props.research)
FormUtil.submit(driverFormIns, () => DriverApi.modify(formData.value))
.then(() => {
ElMessage.success('修改成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} else { } else {
FormUtil.submit(driverFormIns, () => DriverApi.add(formData.value)) return DriverApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success('添加成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} }
} }
defineExpose({ defineExpose({
open(data: DriverTypes.SearchDriverResult = {}) { open(data?: DriverTypes.SearchDriverResult) {
showDialog.value = true formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) { },
status.value = 'modify'
DriverApi.detail(data.id!)
.then(res => {
formData.value = res.data
})
} else {
status.value = 'add'
formData.value = data
}
}
}) })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -7,8 +7,8 @@
<ElFormItem label="统一社会信用代码"> <ElFormItem label="统一社会信用代码">
<ElInput v-model="searchForm.uscc" placeholder="统一社会信用代码"/> <ElInput v-model="searchForm.uscc" placeholder="统一社会信用代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="组织名称"> <ElFormItem label="企业名称">
<ElInput v-model="searchForm.orgName" placeholder="组织名称"/> <ElInput v-model="searchForm.orgName" placeholder="企业名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="法人名称"> <ElFormItem label="法人名称">
<ElInput v-model="searchForm.legalRepresentative" placeholder="法人名称"/> <ElInput v-model="searchForm.legalRepresentative" placeholder="法人名称"/>
@ -26,11 +26,19 @@
<ElInput v-model="searchForm.address" placeholder="详细地址"/> <ElInput v-model="searchForm.address" placeholder="详细地址"/>
</ElFormItem> </ElFormItem>
</template> </template>
<template #simpleSearchFormItem="{searchForm}">
<ElFormItem>
<ElInput v-model="searchForm.uscc" placeholder="统一社会信用代码"/>
</ElFormItem>
<ElFormItem>
<ElInput v-model="searchForm.orgName" placeholder="企业名称"/>
</ElFormItem>
</template>
<template #columns> <template #columns>
<!-- GeTiHu-个体户QiYe--企业 --> <!-- GeTiHu-个体户QiYe--企业 -->
<ElTableColumn label="主体类型" prop="orgCategoryTxt"/> <ElTableColumn label="主体类型" prop="orgCategoryTxt"/>
<!-- <ElTableColumn label="统一社会信用代码" prop="uscc" /> --> <!-- <ElTableColumn label="统一社会信用代码" prop="uscc" /> -->
<ElTableColumn label="组织名称" prop="orgName" width="140"/> <ElTableColumn label="企业名称" prop="orgName" width="140"/>
<ElTableColumn label="营业执照" width="100px"> <ElTableColumn label="营业执照" width="100px">
<template #default="{ row }"> <template #default="{ row }">
<el-image :preview-src-list="[AppApi.fileUrl(row.businessLicense)]" :src="AppApi.fileUrl(row.businessLicense)" preview-teleported show-progress style="width: 60px; height: 60px"/> <el-image :preview-src-list="[AppApi.fileUrl(row.businessLicense)]" :src="AppApi.fileUrl(row.businessLicense)" preview-teleported show-progress style="width: 60px; height: 60px"/>
@ -60,7 +68,7 @@
<ElTableColumn label="创建时间" prop="createTime" width="140"/> <ElTableColumn label="创建时间" prop="createTime" width="140"/>
<ElTableColumn label="修改时间" prop="modifyTime" width="140"/> <ElTableColumn label="修改时间" prop="modifyTime" width="140"/>
</template> </template>
<OrgForm ref="orgForm" @edit-succ="research"/> <OrgForm ref="orgForm" :research="research"/>
</FormPage> </FormPage>
</template> </template>
@ -68,7 +76,8 @@
import OrgApi from '@/pages/cst/org/org-api.ts' import OrgApi from '@/pages/cst/org/org-api.ts'
import OrgForm from '@/pages/cst/org/OrgForm.vue' import OrgForm from '@/pages/cst/org/OrgForm.vue'
import AppApi from '@/common/app/app-api.ts' import AppApi from '@/common/app/app-api.ts'
import FormPage, { type ActionColumnType } from '@/components/page/FormPage.vue' import FormPage from '@/components/page/FormPage.vue'
import type { ActionColumnType } from '@/components/page/a-page-type.ts'
import type { ComponentExposed } from 'vue-component-type-helpers' import type { ComponentExposed } from 'vue-component-type-helpers'
const formPageIns = useTemplateRef<ComponentExposed<typeof FormPage>>('formPage') const formPageIns = useTemplateRef<ComponentExposed<typeof FormPage>>('formPage')

View File

@ -1,214 +1,170 @@
<template> <template>
<ElDialog v-model="showDialog" <AFormPanel
:close-on-click-modal="false" ref="formPanel"
destroy-on-close :details-loader="detailsLoader"
width="fit-content" :do-submit="doSubmit"
@close="dialogCloseHandler">
<ElForm :model="formData"
:rules="rules" :rules="rules"
ref="orgForm" :title="status === 'add' ? '新建企业信息' : '修改企业信息'"
class="form-panel" >
label-width="auto"> <template #default="{formData}">
<ElFormItem label-width="90" label="Id" prop="id"> <div class="form-items">
<ElFormItem label="Id" prop="id">
<ElInput <ElInput
v-model="formData.id" v-model="formData.id"
:disabled="status === 'view'"
placeholder="Id"/> placeholder="Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="主体类型GeTiHu-->个体户、QiYe-->企业" prop="orgCategory"> <ElFormItem label="主体类型GeTiHu-->个体户、QiYe-->企业" prop="orgCategory">
<ElInput <ElInput
v-model="formData.orgCategory" v-model="formData.orgCategory"
:disabled="status === 'view'"
placeholder="主体类型GeTiHu-->个体户、QiYe-->企业"/> placeholder="主体类型GeTiHu-->个体户、QiYe-->企业"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="统一社会信用代码" prop="uscc"> <ElFormItem label="统一社会信用代码" prop="uscc">
<ElInput <ElInput
v-model="formData.uscc" v-model="formData.uscc"
:disabled="status === 'view'"
placeholder="统一社会信用代码"/> placeholder="统一社会信用代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="组织名称" prop="orgName"> <ElFormItem label="企业名称" prop="orgName">
<ElInput <ElInput
v-model="formData.orgName" v-model="formData.orgName"
:disabled="status === 'view'" placeholder="企业名称"/>
placeholder="组织名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="营业执照" prop="businessLicense"> <ElFormItem label="营业执照" prop="businessLicense">
<ElInput <ElInput
v-model="formData.businessLicense" v-model="formData.businessLicense"
:disabled="status === 'view'"
placeholder="营业执照"/> placeholder="营业执照"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="营业执照有效期" prop="licenseStartTime"> <ElFormItem label="营业执照有效期" prop="licenseStartTime">
<ElInput <ElInput
v-model="formData.licenseStartTime" v-model="formData.licenseStartTime"
:disabled="status === 'view'"
placeholder="营业执照有效期"/> placeholder="营业执照有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="营业执照有效期" prop="licenseEndTime"> <ElFormItem label="营业执照有效期" prop="licenseEndTime">
<ElInput <ElInput
v-model="formData.licenseEndTime" v-model="formData.licenseEndTime"
:disabled="status === 'view'"
placeholder="营业执照有效期"/> placeholder="营业执照有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="法人名称" prop="legalRepresentative"> <ElFormItem label="法人名称" prop="legalRepresentative">
<ElInput <ElInput
v-model="formData.legalRepresentative" v-model="formData.legalRepresentative"
:disabled="status === 'view'"
placeholder="法人名称"/> placeholder="法人名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="法人身份证号" prop="idcard"> <ElFormItem label="法人身份证号" prop="idcard">
<ElInput <ElInput
v-model="formData.idcard" v-model="formData.idcard"
:disabled="status === 'view'"
placeholder="法人身份证号"/> placeholder="法人身份证号"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="法人身份证有效期" prop="idcardStartTime"> <ElFormItem label="法人身份证有效期" prop="idcardStartTime">
<ElInput <ElInput
v-model="formData.idcardStartTime" v-model="formData.idcardStartTime"
:disabled="status === 'view'"
placeholder="法人身份证有效期"/> placeholder="法人身份证有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="法人身份证有效期" prop="idcardEndTime"> <ElFormItem label="法人身份证有效期" prop="idcardEndTime">
<ElInput <ElInput
v-model="formData.idcardEndTime" v-model="formData.idcardEndTime"
:disabled="status === 'view'"
placeholder="法人身份证有效期"/> placeholder="法人身份证有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="法人身份证正面" prop="idcardFront"> <ElFormItem label="法人身份证正面" prop="idcardFront">
<ElInput <ElInput
v-model="formData.idcardFront" v-model="formData.idcardFront"
:disabled="status === 'view'"
placeholder="法人身份证正面"/> placeholder="法人身份证正面"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="法人身份证反面" prop="idcardBack"> <ElFormItem label="法人身份证反面" prop="idcardBack">
<ElInput <ElInput
v-model="formData.idcardBack" v-model="formData.idcardBack"
:disabled="status === 'view'"
placeholder="法人身份证反面"/> placeholder="法人身份证反面"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="省;代码" prop="province"> <ElFormItem label="省;代码" prop="province">
<ElInput <ElInput
v-model="formData.province" v-model="formData.province"
:disabled="status === 'view'"
placeholder="省;代码"/> placeholder="省;代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="市;代码" prop="city"> <ElFormItem label="市;代码" prop="city">
<ElInput <ElInput
v-model="formData.city" v-model="formData.city"
:disabled="status === 'view'"
placeholder="市;代码"/> placeholder="市;代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="区县;代码" prop="area"> <ElFormItem label="区县;代码" prop="area">
<ElInput <ElInput
v-model="formData.area" v-model="formData.area"
:disabled="status === 'view'"
placeholder="区县;代码"/> placeholder="区县;代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="乡镇街道;代码" prop="town"> <ElFormItem label="乡镇街道;代码" prop="town">
<ElInput <ElInput
v-model="formData.town" v-model="formData.town"
:disabled="status === 'view'"
placeholder="乡镇街道;代码"/> placeholder="乡镇街道;代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="省;名称" prop="provinceName"> <ElFormItem label="省;名称" prop="provinceName">
<ElInput <ElInput
v-model="formData.provinceName" v-model="formData.provinceName"
:disabled="status === 'view'"
placeholder="省;名称"/> placeholder="省;名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="市;名称" prop="cityName"> <ElFormItem label="市;名称" prop="cityName">
<ElInput <ElInput
v-model="formData.cityName" v-model="formData.cityName"
:disabled="status === 'view'"
placeholder="市;名称"/> placeholder="市;名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="区县;名称" prop="areaName"> <ElFormItem label="区县;名称" prop="areaName">
<ElInput <ElInput
v-model="formData.areaName" v-model="formData.areaName"
:disabled="status === 'view'"
placeholder="区县;名称"/> placeholder="区县;名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="乡镇街道;名称" prop="townName"> <ElFormItem label="乡镇街道;名称" prop="townName">
<ElInput <ElInput
v-model="formData.townName" v-model="formData.townName"
:disabled="status === 'view'"
placeholder="乡镇街道;名称"/> placeholder="乡镇街道;名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="详细地址" prop="address"> <ElFormItem label="详细地址" prop="address">
<ElInput <ElInput
v-model="formData.address" v-model="formData.address"
:disabled="status === 'view'"
placeholder="详细地址"/> placeholder="详细地址"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="经度" prop="lng"> <ElFormItem label="经度" prop="lng">
<ElInput <ElInput
v-model="formData.lng" v-model="formData.lng"
:disabled="status === 'view'"
placeholder="经度"/> placeholder="经度"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="纬度" prop="lat"> <ElFormItem label="纬度" prop="lat">
<ElInput <ElInput
v-model="formData.lat" v-model="formData.lat"
:disabled="status === 'view'"
placeholder="纬度"/> placeholder="纬度"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="创建人 Id sys_user.id" prop="creatorId"> <ElFormItem label="创建人 Id sys_user.id" prop="creatorId">
<ElInput <ElInput
v-model="formData.creatorId" v-model="formData.creatorId"
:disabled="status === 'view'"
placeholder="创建人 Id sys_user.id"/> placeholder="创建人 Id sys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="修改人 Id sys_user.id" prop="modifierId"> <ElFormItem label="修改人 Id sys_user.id" prop="modifierId">
<ElInput <ElInput
v-model="formData.modifierId" v-model="formData.modifierId"
:disabled="status === 'view'"
placeholder="修改人 Id sys_user.id"/> placeholder="修改人 Id sys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="创建时间" prop="createTime"> <ElFormItem label="创建时间" prop="createTime">
<ElInput <ElInput
v-model="formData.createTime" v-model="formData.createTime"
:disabled="status === 'view'"
placeholder="创建时间"/> placeholder="创建时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="修改时间" prop="modifyTime"> <ElFormItem label="修改时间" prop="modifyTime">
<ElInput <ElInput
v-model="formData.modifyTime" v-model="formData.modifyTime"
:disabled="status === 'view'"
placeholder="修改时间"/> placeholder="修改时间"/>
</ElFormItem> </ElFormItem>
</ElForm> </div>
<template #footer>
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import OrgApi from '@/pages/cst/org/org-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import Utils from '@/common/utils' import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
import { import type { ComponentExposed } from 'vue-component-type-helpers'
ElMessage, import OrgApi from '@/pages/cst/org/org-api.ts'
type FormInstance,
type FormRules,
} from 'element-plus'
const emits = defineEmits(['editSucc'])
const showDialog = ref(false)
const submiting = ref(false)
const status = ref<'add' | 'view' | 'modify'>('add')
const orgFormIns = useTemplateRef<FormInstance>('orgForm')
const formData = Utils.resetAble(reactive<any>({}))
const rules = reactive<FormRules<OrgTypes.SearchOrgResult>>({ const rules = reactive<FormRules<OrgTypes.SearchOrgResult>>({
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
orgCategory: [ {required: true, message: '请填写主体类型GeTiHu-->个体户、QiYe-->企业', trigger: 'blur'} ], orgCategory: [ {required: true, message: '请填写主体类型GeTiHu-->个体户、QiYe-->企业', trigger: 'blur'} ],
uscc: [ {required: true, message: '请填写统一社会信用代码', trigger: 'blur'} ], uscc: [ {required: true, message: '请填写统一社会信用代码', trigger: 'blur'} ],
orgName: [{ required: true, message: '请填写组织名称', trigger: 'blur' }], orgName: [ {required: true, message: '请填写企业名称', trigger: 'blur'} ],
businessLicense: [ {required: true, message: '请填写营业执照', trigger: 'blur'} ], businessLicense: [ {required: true, message: '请填写营业执照', trigger: 'blur'} ],
licenseStartTime: [ {required: true, message: '请填写营业执照有效期', trigger: 'blur'} ], licenseStartTime: [ {required: true, message: '请填写营业执照有效期', trigger: 'blur'} ],
licenseEndTime: [ {required: true, message: '请填写营业执照有效期', trigger: 'blur'} ], licenseEndTime: [ {required: true, message: '请填写营业执照有效期', trigger: 'blur'} ],
@ -236,55 +192,51 @@ modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur'
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ], deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
}) })
function dialogCloseHandler() { const props = withDefaults(defineProps<{
formData.$reset() research?: () => void
}>(), {
research: () => {
},
})
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const status = ref<'add' | 'modify'>('add')
function detailsLoader(id?: string) {
if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else {
status.value = 'modify'
return OrgApi
.detail(id!)
.then(res => res.data)
}
} }
function submitHandler() { function doSubmit(data: OrgTypes.SearchOrgResult) {
if (status.value === 'view') return if (status.value === 'add') {
submiting.value = true return OrgApi.add(data)
if (formData.id != null) { .then(props.research)
FormUtil.submit(orgFormIns, () => OrgApi.modify(formData))
.then(() => {
ElMessage.success('修改成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} else { } else {
FormUtil.submit(orgFormIns, () => OrgApi.add(formData)) return OrgApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success('添加成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} }
} }
defineExpose({ defineExpose({
open(data: any = {}) { open(data?: OrgTypes.SearchOrgResult) {
showDialog.value = true formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) { },
status.value = 'modify'
OrgApi.detail(data.id!)
.then(res => {
formData.$reset(res.data)
})
} else {
status.value = 'add'
formData.$reset(data)
}
}
}) })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -9,7 +9,7 @@ declare global {
orgCategory?: string orgCategory?: string
// 统一社会信用代码 // 统一社会信用代码
uscc?: string uscc?: string
// 组织名称 // 企业名称
orgName?: string orgName?: string
// 营业执照 // 营业执照
businessLicense?: string businessLicense?: string
@ -70,7 +70,7 @@ declare global {
orgCategory?: string orgCategory?: string
// 统一社会信用代码 // 统一社会信用代码
uscc?: string uscc?: string
// 组织名称 // 企业名称
orgName?: string orgName?: string
// 营业执照 // 营业执照
businessLicense?: string businessLicense?: string
@ -131,7 +131,7 @@ declare global {
orgCategory?: string orgCategory?: string
// 统一社会信用代码 // 统一社会信用代码
uscc?: string uscc?: string
// 组织名称 // 企业名称
orgName?: string orgName?: string
// 营业执照 // 营业执照
businessLicense?: string businessLicense?: string
@ -192,7 +192,7 @@ declare global {
orgCategory?: string orgCategory?: string
// 统一社会信用代码 // 统一社会信用代码
uscc?: string uscc?: string
// 组织名称 // 企业名称
orgName?: string orgName?: string
// 营业执照 // 营业执照
businessLicense?: string businessLicense?: string

View File

@ -25,11 +25,18 @@
placeholder="详细地址"/> placeholder="详细地址"/>
</ElFormItem> </ElFormItem>
</template> </template>
<template #simpleSearchFormItem="{ searchForm }">
<ElFormItem>
<ElInput
v-model="searchForm.projectName"
placeholder="项目名称"/>
</ElFormItem>
</template>
<template #columns> <template #columns>
<ElTableColumn label="项目名称" prop="projectName"/> <ElTableColumn label="项目名称" prop="projectName"/>
<!-- <ElTableColumn label="合同图片" prop="contractPicture"/> --> <!-- <ElTableColumn label="合同图片" prop="contractPicture"/> -->
<ElTableColumn label="运输方组织" prop="transOrgInfo.orgName"/> <ElTableColumn label="运输方企业" prop="transOrgInfo.orgName"/>
<ElTableColumn label="产废方/购买方组织" prop="fringeOrgInfo.orgName"/> <ElTableColumn label="产废方/购买方企业" prop="fringeOrgInfo.orgName"/>
<!-- <ElTableColumn label="市" prop="cityName"/> --> <!-- <ElTableColumn label="市" prop="cityName"/> -->
<ElTableColumn label="区县" prop="areaName"/> <ElTableColumn label="区县" prop="areaName"/>
<ElTableColumn label="乡镇街道" prop="townName"/> <ElTableColumn label="乡镇街道" prop="townName"/>
@ -48,7 +55,8 @@
import ProjectApi from '@/pages/cst/project/project-api.ts' import ProjectApi from '@/pages/cst/project/project-api.ts'
import ProjectDetail from '@/pages/cst/project/ProjectDetail.vue' import ProjectDetail from '@/pages/cst/project/ProjectDetail.vue'
import ProjectForm from '@/pages/cst/project/ProjectForm.vue' import ProjectForm from '@/pages/cst/project/ProjectForm.vue'
import FormPage, { type ActionColumnType } from '@/components/page/FormPage.vue' import FormPage from '@/components/page/FormPage.vue'
import type { ActionColumnType } from '@/components/page/a-page-type.ts'
import type { ComponentExposed } from 'vue-component-type-helpers' import type { ComponentExposed } from 'vue-component-type-helpers'
const formPageIns = useTemplateRef<ComponentExposed<typeof FormPage>>('formPage') const formPageIns = useTemplateRef<ComponentExposed<typeof FormPage>>('formPage')

View File

@ -4,10 +4,10 @@
<el-descriptions-item label="项目名称"> <el-descriptions-item label="项目名称">
{{ formData.projectName }} {{ formData.projectName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="运输方组织"> <el-descriptions-item label="运输方企业">
{{ formData?.transOrgInfo?.orgName }} {{ formData?.transOrgInfo?.orgName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="产废方/购买方组织"> <el-descriptions-item label="产废方/购买方企业">
{{ formData.fringeOrgInfo?.orgName }} {{ formData.fringeOrgInfo?.orgName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="区县"> <el-descriptions-item label="区县">

View File

@ -1,192 +1,128 @@
<template> <template>
<ElDialog v-model="showDialog" <AFormPanel
:close-on-click-modal="false" ref="formPanel"
destroy-on-close :details-loader="detailsLoader"
width="fit-content" :do-submit="doSubmit"
@close="dialogCloseHandler">
<ElForm :model="formData"
:rules="rules" :rules="rules"
ref="projectForm" :title="status === 'add' ? '新建项目' : '修改项目'"
class="form-panel" >
label-width="auto"> <template #default="{formData}">
<ElFormItem label-width="90" label="Id" prop="id"> <div class="form-items">
<ElInput <ElFormItem label="项目名称" prop="projectName">
v-model="formData.id"
:disabled="status === 'view'"
placeholder="Id"/>
</ElFormItem>
<ElFormItem label-width="90" label="项目名称" prop="projectName">
<ElInput <ElInput
v-model="formData.projectName" v-model="formData.projectName"
:disabled="status === 'view'"
placeholder="项目名称"/> placeholder="项目名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="合同图片" prop="contractPicture"> <ElFormItem label="合同图片" prop="contractPicture">
<ElInput <ElInput
v-model="formData.contractPicture" v-model="formData.contractPicture"
:disabled="status === 'view'"
placeholder="合同图片"/> placeholder="合同图片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="运输方客户 Id" prop="transCustomerId"> <ElFormItem label="运输方客户 Id" prop="transCustomerId">
<ElInput <ElInput
v-model="formData.transCustomerId" v-model="formData.transCustomerId"
:disabled="status === 'view'"
placeholder="运输方客户 Id"/> placeholder="运输方客户 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="运输方组织 Id" prop="transOrgId"> <ElFormItem label="运输方企业 Id" prop="transOrgId">
<ElInput <ElInput
v-model="formData.transOrgId" v-model="formData.transOrgId"
:disabled="status === 'view'" placeholder="运输方企业 Id"/>
placeholder="运输方组织 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="产废方/购买方客户 Id" prop="fringeCustomerId"> <ElFormItem label="产废方/购买方客户 Id" prop="fringeCustomerId">
<ElInput <ElInput
v-model="formData.fringeCustomerId" v-model="formData.fringeCustomerId"
:disabled="status === 'view'"
placeholder="产废方/购买方客户 Id"/> placeholder="产废方/购买方客户 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="产废方/购买方组织 Id" prop="fringeOrgId"> <ElFormItem label="产废方/购买方企业 Id" prop="fringeOrgId">
<ElInput <ElInput
v-model="formData.fringeOrgId" v-model="formData.fringeOrgId"
:disabled="status === 'view'" placeholder="产废方/购买方企业 Id"/>
placeholder="产废方/购买方组织 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="省;代码" prop="province"> <ElFormItem label="省;代码" prop="province">
<ElInput <ElInput
v-model="formData.province" v-model="formData.province"
:disabled="status === 'view'"
placeholder="省;代码"/> placeholder="省;代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="市;代码" prop="city"> <ElFormItem label="市;代码" prop="city">
<ElInput <ElInput
v-model="formData.city" v-model="formData.city"
:disabled="status === 'view'"
placeholder="市;代码"/> placeholder="市;代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="区县;代码" prop="area"> <ElFormItem label="区县;代码" prop="area">
<ElInput <ElInput
v-model="formData.area" v-model="formData.area"
:disabled="status === 'view'"
placeholder="区县;代码"/> placeholder="区县;代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="乡镇街道;代码" prop="town"> <ElFormItem label="乡镇街道;代码" prop="town">
<ElInput <ElInput
v-model="formData.town" v-model="formData.town"
:disabled="status === 'view'"
placeholder="乡镇街道;代码"/> placeholder="乡镇街道;代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="省;名称" prop="provinceName"> <ElFormItem label="省;名称" prop="provinceName">
<ElInput <ElInput
v-model="formData.provinceName" v-model="formData.provinceName"
:disabled="status === 'view'"
placeholder="省;名称"/> placeholder="省;名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="市;名称" prop="cityName"> <ElFormItem label="市;名称" prop="cityName">
<ElInput <ElInput
v-model="formData.cityName" v-model="formData.cityName"
:disabled="status === 'view'"
placeholder="市;名称"/> placeholder="市;名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="区县;名称" prop="areaName"> <ElFormItem label="区县;名称" prop="areaName">
<ElInput <ElInput
v-model="formData.areaName" v-model="formData.areaName"
:disabled="status === 'view'"
placeholder="区县;名称"/> placeholder="区县;名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="乡镇街道;名称" prop="townName"> <ElFormItem label="乡镇街道;名称" prop="townName">
<ElInput <ElInput
v-model="formData.townName" v-model="formData.townName"
:disabled="status === 'view'"
placeholder="乡镇街道;名称"/> placeholder="乡镇街道;名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="详细地址" prop="address"> <ElFormItem label="详细地址" prop="address">
<ElInput <ElInput
v-model="formData.address" v-model="formData.address"
:disabled="status === 'view'"
placeholder="详细地址"/> placeholder="详细地址"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="经度" prop="lng"> <ElFormItem label="经度" prop="lng">
<ElInput <ElInput
v-model="formData.lng" v-model="formData.lng"
:disabled="status === 'view'"
placeholder="经度"/> placeholder="经度"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="纬度" prop="lat"> <ElFormItem label="纬度" prop="lat">
<ElInput <ElInput
v-model="formData.lat" v-model="formData.lat"
:disabled="status === 'view'"
placeholder="纬度"/> placeholder="纬度"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="合同有效期" prop="contractStartDate"> <ElFormItem label="合同有效期" prop="contractStartDate">
<ElInput <ElInput
v-model="formData.contractStartDate" v-model="formData.contractStartDate"
:disabled="status === 'view'"
placeholder="合同有效期"/> placeholder="合同有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="合同有效期" prop="contractEndDate"> <ElFormItem label="合同有效期" prop="contractEndDate">
<ElInput <ElInput
v-model="formData.contractEndDate" v-model="formData.contractEndDate"
:disabled="status === 'view'"
placeholder="合同有效期"/> placeholder="合同有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="创建人 Id sys_user.id" prop="creatorId"> </div>
<ElInput
v-model="formData.creatorId"
:disabled="status === 'view'"
placeholder="创建人 Id sys_user.id"/>
</ElFormItem>
<ElFormItem label-width="90" label="修改人 Id sys_user.id" prop="modifierId">
<ElInput
v-model="formData.modifierId"
:disabled="status === 'view'"
placeholder="修改人 Id sys_user.id"/>
</ElFormItem>
<ElFormItem label-width="90" label="创建时间" prop="createTime">
<ElInput
v-model="formData.createTime"
:disabled="status === 'view'"
placeholder="创建时间"/>
</ElFormItem>
<ElFormItem label-width="90" label="修改时间" prop="modifyTime">
<ElInput
v-model="formData.modifyTime"
:disabled="status === 'view'"
placeholder="修改时间"/>
</ElFormItem>
</ElForm>
<template #footer>
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import ProjectApi from '@/pages/cst/project/project-api.ts' import ProjectApi from '@/pages/cst/project/project-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import { import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
ElMessage, import type { ComponentExposed } from 'vue-component-type-helpers'
type FormInstance,
type FormRules,
} from 'element-plus'
const emits = defineEmits(['editSucc'])
const showDialog = ref(false)
const submiting = ref(false)
const status = ref<'add' | 'view' | 'modify'>('add')
const projectFormIns = useTemplateRef<FormInstance>('projectForm')
const formData = ref<ProjectTypes.SearchProjectResult>({})
const rules = reactive<FormRules<ProjectTypes.SearchProjectResult>>({ const rules = reactive<FormRules<ProjectTypes.SearchProjectResult>>({
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
projectName: [ {required: true, message: '请填写项目名称', trigger: 'blur'} ], projectName: [ {required: true, message: '请填写项目名称', trigger: 'blur'} ],
contractPicture: [ {required: true, message: '请填写合同图片', trigger: 'blur'} ], contractPicture: [ {required: true, message: '请填写合同图片', trigger: 'blur'} ],
transCustomerId: [ {required: true, message: '请填写运输方客户 Id', trigger: 'blur'} ], transCustomerId: [ {required: true, message: '请填写运输方客户 Id', trigger: 'blur'} ],
transOrgId: [{ required: true, message: '请填写运输方组织 Id', trigger: 'blur' }], transOrgId: [ {required: true, message: '请填写运输方企业 Id', trigger: 'blur'} ],
fringeCustomerId: [ {required: true, message: '请填写产废方/购买方客户 Id', trigger: 'blur'} ], fringeCustomerId: [ {required: true, message: '请填写产废方/购买方客户 Id', trigger: 'blur'} ],
fringeOrgId: [{ required: true, message: '请填写产废方/购买方组织 Id', trigger: 'blur' }], fringeOrgId: [ {required: true, message: '请填写产废方/购买方企业 Id', trigger: 'blur'} ],
province: [ {required: true, message: '请填写省;代码', trigger: 'blur'} ], province: [ {required: true, message: '请填写省;代码', trigger: 'blur'} ],
city: [ {required: true, message: '请填写市;代码', trigger: 'blur'} ], city: [ {required: true, message: '请填写市;代码', trigger: 'blur'} ],
area: [ {required: true, message: '请填写区县;代码', trigger: 'blur'} ], area: [ {required: true, message: '请填写区县;代码', trigger: 'blur'} ],
@ -207,55 +143,50 @@ modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur'
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ], deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
}) })
function dialogCloseHandler() { const props = withDefaults(defineProps<{
formData.value = {} research?: () => void
}>(), {
research: () => {
},
})
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const status = ref<'add' | 'modify'>('add')
function detailsLoader(id?: string) {
if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else {
status.value = 'modify'
return ProjectApi
.detail(id!)
.then(res => res.data)
}
} }
function submitHandler() { function doSubmit(data: ProjectTypes.SearchProjectResult) {
if (status.value === 'view') return if (status.value === 'add') {
submiting.value = true return ProjectApi.add(data)
if (formData.value.id != null) { .then(props.research)
FormUtil.submit(projectFormIns, () => ProjectApi.modify(formData.value))
.then(() => {
ElMessage.success('修改成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} else { } else {
FormUtil.submit(projectFormIns, () => ProjectApi.add(formData.value)) return ProjectApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success('添加成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} }
} }
defineExpose({ defineExpose({
open(data: ProjectTypes.SearchProjectResult = {}) { open(data?: ProjectTypes.SearchProjectResult) {
showDialog.value = true formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) { },
status.value = 'modify'
ProjectApi.detail(data.id!)
.then(res => {
formData.value = res.data
})
} else {
status.value = 'add'
formData.value = data
}
}
}) })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -12,11 +12,11 @@ declare global {
contractPicture?: string; contractPicture?: string;
// 运输方客户 Id // 运输方客户 Id
transCustomerId?: string; transCustomerId?: string;
// 运输方组织 Id // 运输方企业 Id
transOrgId?: string; transOrgId?: string;
// 产废方/购买方客户 Id // 产废方/购买方客户 Id
fringeCustomerId?: string; fringeCustomerId?: string;
// 产废方/购买方组织 Id // 产废方/购买方企业 Id
fringeOrgId?: string; fringeOrgId?: string;
// 省;代码 // 省;代码
province?: string; province?: string;
@ -65,11 +65,11 @@ declare global {
contractPicture?: string contractPicture?: string
// 运输方客户 Id // 运输方客户 Id
transCustomerId?: string transCustomerId?: string
// 运输方组织 Id // 运输方企业 Id
transOrgId?: string transOrgId?: string
// 产废方/购买方客户 Id // 产废方/购买方客户 Id
fringeCustomerId?: string fringeCustomerId?: string
// 产废方/购买方组织 Id // 产废方/购买方企业 Id
fringeOrgId?: string fringeOrgId?: string
// 省;代码 // 省;代码
province?: string province?: string
@ -118,11 +118,11 @@ declare global {
contractPicture?: string contractPicture?: string
// 运输方客户 Id // 运输方客户 Id
transCustomerId?: string transCustomerId?: string
// 运输方组织 Id // 运输方企业 Id
transOrgId?: string transOrgId?: string
// 产废方/购买方客户 Id // 产废方/购买方客户 Id
fringeCustomerId?: string fringeCustomerId?: string
// 产废方/购买方组织 Id // 产废方/购买方企业 Id
fringeOrgId?: string fringeOrgId?: string
// 省;代码 // 省;代码
province?: string province?: string
@ -171,11 +171,11 @@ declare global {
contractPicture?: string contractPicture?: string
// 运输方客户 Id // 运输方客户 Id
transCustomerId?: string transCustomerId?: string
// 运输方组织 Id // 运输方企业 Id
transOrgId?: string transOrgId?: string
// 产废方/购买方客户 Id // 产废方/购买方客户 Id
fringeCustomerId?: string fringeCustomerId?: string
// 产废方/购买方组织 Id // 产废方/购买方企业 Id
fringeOrgId?: string fringeOrgId?: string
// 省;代码 // 省;代码
province?: string province?: string

View File

@ -69,7 +69,7 @@
<ElTableColumn label="创建时间" prop="createTime" width="170px"/> <ElTableColumn label="创建时间" prop="createTime" width="170px"/>
<ElTableColumn label="修改时间" prop="modifyTime" width="170px"/> <ElTableColumn label="修改时间" prop="modifyTime" width="170px"/>
</template> </template>
<StationForm ref="stationForm" @edit-succ="research"/> <StationForm ref="stationForm" :research="research"/>
</FormPage> </FormPage>
</template> </template>

View File

@ -1,238 +1,126 @@
<template> <template>
<!-- destroy-on-close --> <AFormPanel
<ElDialog v-model="showDialog" :close-on-click-modal="false" width="fit-content" @close="dialogCloseHandler"> ref="formPanel"
<ElForm :model="formData" :rules="rules" ref="stationForm" class="form-panel" label-width="auto" style="width: 600px"> :details-loader="detailsLoader"
:do-submit="doSubmit"
:rules="rules"
:title="status === 'add' ? '新建站点' : '修改站点'"
>
<template #default="{formData}">
<div class="form-items">
<ElFormItem label="企业信息 Id" prop="orgId">
<ElFormItem label-width="90" label="组织信息 Id" prop="orgId">
<!-- <ElInput v-model="formData.orgId" :disabled="status === 'view'" placeholder="组织信息 Id" /> -->
<el-select v-model="formData.orgId" :disabled="status === 'view'" placeholder="产品类型" filterable remote reserve-keyword remote-show-suffix :remote-method="remoteOrg" :loading="loadingOrg">
<el-option v-for="item in orgList" :key="item.id" :label="item.orgName" :value="item.id" />
</el-select>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="站点名称" prop="stationName"> <ElFormItem label="站点名称" prop="stationName">
<ElInput v-model="formData.stationName" :disabled="status === 'view'" placeholder="站点名称" /> <ElInput v-model="formData.stationName" placeholder="站点名称"/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="省;代码" prop="province"> <!-- <ElFormItem label="省;代码" prop="province">
<ElInput v-model="formData.province" :disabled="status === 'view'" placeholder="省;代码" /> <ElInput v-model="formData.province" placeholder="省;代码" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="市;代码" prop="city"> <ElFormItem label="市;代码" prop="city">
<ElInput v-model="formData.city" :disabled="status === 'view'" placeholder="市;代码" /> <ElInput v-model="formData.city" placeholder="市;代码" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="区县;代码" prop="area"> <ElFormItem label="区县;代码" prop="area">
<ElInput v-model="formData.area" :disabled="status === 'view'" placeholder="区县;代码" /> <ElInput v-model="formData.area" placeholder="区县;代码" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="乡镇街道;代码" prop="town"> <ElFormItem label="乡镇街道;代码" prop="town">
<ElInput v-model="formData.town" :disabled="status === 'view'" placeholder="乡镇街道;代码" /> <ElInput v-model="formData.town" placeholder="乡镇街道;代码" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="详细地址" prop="address"> <ElFormItem label="详细地址" prop="address">
<el-select v-model="formData.address" :disabled="status === 'view'" placeholder="详细地址" filterable remote reserve-keyword remote-show-suffix :remote-method="remoteMethod" @change="addressChange" :loading="loading">
<el-option v-for="item in addList" :key="item.id" :label="item.address" :value="item.address" />
</el-select>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="省" prop="provinceName"> <ElFormItem label="省" prop="provinceName">
<ElInput v-model="formData.provinceName" :disabled="status === 'view'" placeholder="省" /> <ElInput v-model="formData.provinceName" placeholder="省"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="市" prop="cityName"> <ElFormItem label="市" prop="cityName">
<ElInput v-model="formData.cityName" :disabled="status === 'view'" placeholder="市" /> <ElInput v-model="formData.cityName" placeholder="市"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="区县" prop="areaName"> <ElFormItem label="区县" prop="areaName">
<ElInput v-model="formData.areaName" :disabled="status === 'view'" placeholder="区县" /> <ElInput v-model="formData.areaName" placeholder="区县"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="乡镇街道" prop="townName"> <ElFormItem label="乡镇街道" prop="townName">
<ElInput v-model="formData.townName" :disabled="status === 'view'" placeholder="乡镇街道" /> <ElInput v-model="formData.townName" placeholder="乡镇街道"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="经度" prop="lng"> <ElFormItem label="经度" prop="lng">
<ElInput v-model="formData.lng" :disabled="status === 'view'" placeholder="经度" /> <ElInput v-model="formData.lng" placeholder="经度"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="纬度" prop="lat"> <ElFormItem label="纬度" prop="lat">
<ElInput v-model="formData.lat" :disabled="status === 'view'" placeholder="纬度" /> <ElInput v-model="formData.lat" placeholder="纬度"/>
</ElFormItem> </ElFormItem>
</ElForm>
<div id="container" style="width: 100%; height: 400px"></div> <div id="container" style="width: 100%; height: 400px"></div>
<template #footer> </div>
<ElButton @click="showDialog = false">{{ status === "view" ? "关闭" : "取消" }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import StationApi from "@/pages/cst/station/station-api.ts"; import StationApi from '@/pages/cst/station/station-api.ts'
import Strings from "@/common/utils/strings.ts"; import Strings from '@/common/utils/strings.ts'
import FormUtil from "@/common/utils/formUtil.ts"; import { type FormRules } from 'element-plus'
import Utils from "@/common/utils"; import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
import { ElMessage, type FormInstance, type FormRules } from "element-plus"; import type { ComponentExposed } from 'vue-component-type-helpers'
import { geocoder, init, latLng, marker, search } from "./map.ts";
import OrgApi from "@/pages/cst/org/org-api.ts";
const emits = defineEmits(["editSucc"]); const props = withDefaults(defineProps<{
const showDialog = ref(false); research?: () => void
const submiting = ref(false); }>(), {
const status = ref<"add" | "view" | "modify">("add"); research: () => {
},
})
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const status = ref<'add' | 'modify'>('add')
const stationFormIns = useTemplateRef<FormInstance>("stationForm");
const formData = Utils.resetAble(reactive<StationTypes.SearchStationResult>({}));
const rules = reactive<FormRules<StationTypes.SearchStationResult>>({ const rules = reactive<FormRules<StationTypes.SearchStationResult>>({
id: [{ required: true, message: "请填写Id", trigger: "blur" }], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
orgId: [{ required: true, message: "请填写组织信息 Id", trigger: "blur" }], orgId: [ {required: true, message: '请填写企业信息 Id', trigger: 'blur'} ],
stationName: [{ required: true, message: "请填写站点名称", trigger: "blur" }], stationName: [ {required: true, message: '请填写站点名称', trigger: 'blur'} ],
province: [{ required: true, message: "请填写省;代码", trigger: "blur" }], province: [ {required: true, message: '请填写省;代码', trigger: 'blur'} ],
city: [{ required: true, message: "请填写市;代码", trigger: "blur" }], city: [ {required: true, message: '请填写市;代码', trigger: 'blur'} ],
area: [{ required: true, message: "请填写区县;代码", trigger: "blur" }], area: [ {required: true, message: '请填写区县;代码', trigger: 'blur'} ],
town: [{ required: true, message: "请填写乡镇街道;代码", trigger: "blur" }], town: [ {required: true, message: '请填写乡镇街道;代码', trigger: 'blur'} ],
provinceName: [{ required: true, message: "请填写省", trigger: "blur" }], provinceName: [ {required: true, message: '请填写省', trigger: 'blur'} ],
cityName: [{ required: true, message: "请填写市", trigger: "blur" }], cityName: [ {required: true, message: '请填写市', trigger: 'blur'} ],
areaName: [{ required: true, message: "请填写区县", trigger: "blur" }], areaName: [ {required: true, message: '请填写区县', trigger: 'blur'} ],
townName: [{ required: true, message: "请填写乡镇街道", trigger: "blur" }], townName: [ {required: true, message: '请填写乡镇街道', trigger: 'blur'} ],
address: [{ required: true, message: "请填写详细地址", trigger: "blur" }], address: [ {required: true, message: '请填写详细地址', trigger: 'blur'} ],
lng: [{ required: true, message: "请填写经度", trigger: "blur" }], lng: [ {required: true, message: '请填写经度', trigger: 'blur'} ],
lat: [{ required: true, message: "请填写纬度", trigger: "blur" }], lat: [ {required: true, message: '请填写纬度', trigger: 'blur'} ],
creatorId: [{ required: true, message: "请填写创建人", trigger: "blur" }], creatorId: [ {required: true, message: '请填写创建人', trigger: 'blur'} ],
modifierId: [{ required: true, message: "请填写修改人", trigger: "blur" }], modifierId: [ {required: true, message: '请填写修改人', trigger: 'blur'} ],
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }], createTime: [ {required: true, message: '请填写创建时间', trigger: 'blur'} ],
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }], modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
deleted: [{ required: true, message: "请填写是否删除", trigger: "blur" }], deleted: [ {required: true, message: '请填写是否删除', trigger: 'blur'} ],
});
function dialogCloseHandler() {
formData.$reset();
if (markers) {
markers.setMap(null);
markers = null;
}
}
function submitHandler() {
if (status.value === "view") return;
submiting.value = true;
if (formData.id != null) {
FormUtil.submit(stationFormIns, () => StationApi.modify(formData))
.then(() => {
ElMessage.success("修改成功");
emits("editSucc");
showDialog.value = false;
}) })
.finally(() => {
submiting.value = false;
}); function detailsLoader(id?: string) {
if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else { } else {
FormUtil.submit(stationFormIns, () => StationApi.add(formData)) status.value = 'modify'
.then(() => { return StationApi
ElMessage.success("添加成功"); .detail(id!)
emits("editSucc"); .then(res => res.data)
showDialog.value = false;
})
.finally(() => {
submiting.value = false;
});
} }
} }
let map: any;
let markers: any;
const getDetail = (latLng: string) => { function doSubmit(data: ProjectTypes.SearchProjectResult) {
if (markers) { if (status.value === 'add') {
markers.setMap(null); return StationApi.add(data)
markers = null; .then(props.research)
} else {
return StationApi.modify(data)
.then(props.research)
} }
markers = marker(map, latLng);
map.easeTo({ zoom: 13, center: latLng }, { duration: 1000 });
geocoder(latLng)
.getAddress({
location: latLng,
})
.then((res: any) => {
// address.value = res.result.formatted_addresses.standard_address
let res1 = res.result;
formData.address = res1.formatted_addresses.standard_address;
formData.area = res1.ad_info.adcode;
formData.areaName = res1.ad_info.district;
formData.city = res1.ad_info.city_code;
formData.cityName = res1.ad_info.city;
formData.province = "340000";
formData.provinceName = "安徽省";
formData.lat = res1.location.lat;
formData.lng = res1.location.lng;
formData.town = res1.address_reference.town.id;
formData.townName = res1.address_reference.town.title;
console.log(formData, "formData");
});
};
const orgList = ref<OrgTypes.SearchOrgResult[]>([]);
const loadingOrg = ref(false);
const remoteOrg = (query: string) => {
loading.value = true;
OrgApi.paging({ size: 50, orgName: query || undefined }).then((res) => {
orgList.value = res.data.records;
loadingOrg.value = false;
// category.value = list.value.filter((item) => {
// return item.label.toLowerCase().includes(query.toLowerCase())
// })
});
// } else {
// category.value = [];
// }
};
const loading = ref(false);
const addList = ref<any>([]);
const remoteMethod = (query: string) => {
if (query) {
loading.value = true;
search()
.searchRectangle({
keyword: query,
bounds: map.getBounds(),
})
.then((res: any) => {
addList.value = res.data;
loading.value = false;
});
} }
};
let addressChange = (e: string) => {
console.log(e, "eee");
if (addList.value) {
let item = addList.value.find((add: any) => (add.address == e));
if (item) getDetail(latLng(item.location.lat, item.location.lng));
}
};
defineExpose({ defineExpose({
open(data: StationTypes.SearchStationResult = {}) { open(data?: ProjectTypes.SearchProjectResult) {
showDialog.value = true; formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) {
status.value = "modify";
StationApi.detail(data.id!).then((res) => {
formData.$reset(res.data);
});
} else {
status.value = "add";
formData.$reset(data);
}
setTimeout(() => {
if (!map) {
map = init("container");
map.on("click", (evt: any) => {
getDetail(evt.latLng);
});
}
}, 50);
}, },
}); })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>

View File

@ -5,7 +5,7 @@ declare global {
interface SearchStationParam extends G.PageParam { interface SearchStationParam extends G.PageParam {
// Id // Id
id?: string id?: string
// 组织信息 Id // 企业信息 Id
orgId?: string orgId?: string
// 站点名称 // 站点名称
stationName?: string stationName?: string
@ -46,7 +46,7 @@ declare global {
interface SearchStationResult { interface SearchStationResult {
// Id // Id
id?: string id?: string
// 组织信息 Id // 企业信息 Id
orgId?: string orgId?: string
// 站点名称 // 站点名称
stationName?: string stationName?: string
@ -87,7 +87,7 @@ declare global {
interface AddStationParam { interface AddStationParam {
// Id // Id
id?: string id?: string
// 组织信息 Id // 企业信息 Id
orgId?: string orgId?: string
// 站点名称 // 站点名称
stationName?: string stationName?: string
@ -128,7 +128,7 @@ declare global {
interface ModifyStationParam { interface ModifyStationParam {
// Id // Id
id?: string id?: string
// 组织信息 Id // 企业信息 Id
orgId?: string orgId?: string
// 站点名称 // 站点名称
stationName?: string stationName?: string

View File

@ -50,7 +50,7 @@
</ElTableColumn> </ElTableColumn>
<ElTableColumn label="创建时间" prop="createTime" width="100px"/> <ElTableColumn label="创建时间" prop="createTime" width="100px"/>
</template> </template>
<TruckForm ref="truckForm" @edit-succ="research"/> <TruckForm ref="truckForm" :research="research"/>
<TruckDetail ref="truckDetail"/> <TruckDetail ref="truckDetail"/>
</FormPage> </FormPage>
</template> </template>
@ -60,7 +60,8 @@ import TruckApi from '@/pages/cst/truck/truck-api.ts'
import TruckForm from '@/pages/cst/truck/TruckForm.vue' import TruckForm from '@/pages/cst/truck/TruckForm.vue'
import TruckDetail from '@/pages/cst/truck/TruckDetail.vue' import TruckDetail from '@/pages/cst/truck/TruckDetail.vue'
import AppApi from '@/common/app/app-api.ts' import AppApi from '@/common/app/app-api.ts'
import FormPage, { type ActionColumnType } from '@/components/page/FormPage.vue' import FormPage from '@/components/page/FormPage.vue'
import type { ActionColumnType } from '@/components/page/a-page-type.ts'
import type { ComponentExposed } from 'vue-component-type-helpers' import type { ComponentExposed } from 'vue-component-type-helpers'
const truckDetailIns = useTemplateRef<InstanceType<typeof TruckDetail>>('truckDetail') const truckDetailIns = useTemplateRef<InstanceType<typeof TruckDetail>>('truckDetail')

View File

@ -75,7 +75,7 @@ const formData = ref<TruckTypes.SearchTruckResult>({});
// const rules = reactive<FormRules<TruckTypes.SearchTruckResult>>({ // const rules = reactive<FormRules<TruckTypes.SearchTruckResult>>({
// id: [{ required: true, message: "Id", trigger: "blur" }], // id: [{ required: true, message: "Id", trigger: "blur" }],
// customerId: [{ required: true, message: " Idcst_customer.id", trigger: "blur" }], // customerId: [{ required: true, message: " Idcst_customer.id", trigger: "blur" }],
// orgId: [{ required: true, message: "", trigger: "blur" }], // orgId: [{ required: true, message: "", trigger: "blur" }],
// licensePlate: [{ required: true, message: "", trigger: "blur" }], // licensePlate: [{ required: true, message: "", trigger: "blur" }],
// truckLicense: [{ required: true, message: "", trigger: "blur" }], // truckLicense: [{ required: true, message: "", trigger: "blur" }],
// vnCode: [{ required: true, message: "", trigger: "blur" }], // vnCode: [{ required: true, message: "", trigger: "blur" }],

View File

@ -1,164 +1,105 @@
<template> <template>
<ElDialog v-model="showDialog" <AFormPanel
:close-on-click-modal="false" ref="formPanel"
destroy-on-close :details-loader="detailsLoader"
width="fit-content" :do-submit="doSubmit"
@close="dialogCloseHandler">
<ElForm :model="formData"
:rules="rules" :rules="rules"
ref="truckForm" :title="status === 'add' ? '新建车辆信息' : '修改车辆信息'"
class="form-panel" >
label-width="auto"> <template #default="{formData}">
<ElFormItem label-width="90" label="Id" prop="id"> <div class="form-items">
<ElInput <ElFormItem label="归属客户" prop="customerId">
v-model="formData.id"
:disabled="status === 'view'"
placeholder="Id"/>
</ElFormItem>
<ElFormItem label-width="90" label="归属客户" prop="customerId">
<ElInput <ElInput
v-model="formData.customerId" v-model="formData.customerId"
:disabled="status === 'view'"
placeholder="归属客户"/> placeholder="归属客户"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="归属组织" prop="orgId"> <ElFormItem label="归属企业" prop="orgId">
<ElInput <ElInput
v-model="formData.orgId" v-model="formData.orgId"
:disabled="status === 'view'" placeholder="归属企业"/>
placeholder="归属组织"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车牌" prop="licensePlate"> <ElFormItem label="车牌" prop="licensePlate">
<ElInput <ElInput
v-model="formData.licensePlate" v-model="formData.licensePlate"
:disabled="status === 'view'"
placeholder="车牌"/> placeholder="车牌"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="行驶证图片" prop="truckLicense"> <ElFormItem label="行驶证图片" prop="truckLicense">
<ElInput <ElInput
v-model="formData.truckLicense" v-model="formData.truckLicense"
:disabled="status === 'view'"
placeholder="行驶证图片"/> placeholder="行驶证图片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车架号" prop="vnCode"> <ElFormItem label="车架号" prop="vnCode">
<ElInput <ElInput
v-model="formData.vnCode" v-model="formData.vnCode"
:disabled="status === 'view'"
placeholder="车架号"/> placeholder="车架号"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="合格证图片" prop="qualification"> <ElFormItem label="合格证图片" prop="qualification">
<ElInput <ElInput
v-model="formData.qualification" v-model="formData.qualification"
:disabled="status === 'view'"
placeholder="合格证图片"/> placeholder="合格证图片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="最大载重;单位:千克" prop="carryingCapacity"> <ElFormItem label="最大载重;单位:千克" prop="carryingCapacity">
<ElInput <ElInput
v-model="formData.carryingCapacity" v-model="formData.carryingCapacity"
:disabled="status === 'view'"
placeholder="最大载重;单位:千克"/> placeholder="最大载重;单位:千克"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="皮重;单位:千克" prop="tareWeight"> <ElFormItem label="皮重;单位:千克" prop="tareWeight">
<ElInput <ElInput
v-model="formData.tareWeight" v-model="formData.tareWeight"
:disabled="status === 'view'"
placeholder="皮重;单位:千克"/> placeholder="皮重;单位:千克"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="行驶证有效期" prop="licenseStartDate"> <ElFormItem label="行驶证有效期" prop="licenseStartDate">
<ElInput <ElInput
v-model="formData.licenseStartDate" v-model="formData.licenseStartDate"
:disabled="status === 'view'"
placeholder="行驶证有效期"/> placeholder="行驶证有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="行驶证有效期" prop="licenseEndDate"> <ElFormItem label="行驶证有效期" prop="licenseEndDate">
<ElInput <ElInput
v-model="formData.licenseEndDate" v-model="formData.licenseEndDate"
:disabled="status === 'view'"
placeholder="行驶证有效期"/> placeholder="行驶证有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="合格证有效期" prop="qualificationStartDate"> <ElFormItem label="合格证有效期" prop="qualificationStartDate">
<ElInput <ElInput
v-model="formData.qualificationStartDate" v-model="formData.qualificationStartDate"
:disabled="status === 'view'"
placeholder="合格证有效期"/> placeholder="合格证有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="合格证有效期" prop="qualificationEndDate"> <ElFormItem label="合格证有效期" prop="qualificationEndDate">
<ElInput <ElInput
v-model="formData.qualificationEndDate" v-model="formData.qualificationEndDate"
:disabled="status === 'view'"
placeholder="合格证有效期"/> placeholder="合格证有效期"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车辆类型" prop="truckCategory"> <ElFormItem label="车辆类型" prop="truckCategory">
<ElInput <ElInput
v-model="formData.truckCategory" v-model="formData.truckCategory"
:disabled="status === 'view'"
placeholder="车辆类型"/> placeholder="车辆类型"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车辆图片" prop="picture"> <ElFormItem label="车辆图片" prop="picture">
<ElInput <ElInput
v-model="formData.picture" v-model="formData.picture"
:disabled="status === 'view'"
placeholder="车辆图片"/> placeholder="车辆图片"/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="忙碌中" prop="busy"> </div>
<ElInput
v-model="formData.busy"
:disabled="status === 'view'"
placeholder="忙碌中"/>
</ElFormItem> -->
<ElFormItem label-width="90" label="创建人 Id sys_user.id" prop="creatorId">
<ElInput
v-model="formData.creatorId"
:disabled="status === 'view'"
placeholder="创建人 Id sys_user.id"/>
</ElFormItem>
<ElFormItem label-width="90" label="修改人 Id sys_user.id" prop="modifierId">
<ElInput
v-model="formData.modifierId"
:disabled="status === 'view'"
placeholder="修改人 Id sys_user.id"/>
</ElFormItem>
<ElFormItem label-width="90" label="创建时间" prop="createTime">
<ElInput
v-model="formData.createTime"
:disabled="status === 'view'"
placeholder="创建时间"/>
</ElFormItem>
<ElFormItem label-width="90" label="修改时间" prop="modifyTime">
<ElInput
v-model="formData.modifyTime"
:disabled="status === 'view'"
placeholder="修改时间"/>
</ElFormItem>
</ElForm>
<template #footer>
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import TruckApi from '@/pages/cst/truck/truck-api.ts' import TruckApi from '@/pages/cst/truck/truck-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import { import type { ComponentExposed } from 'vue-component-type-helpers'
ElMessage, import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
type FormInstance,
type FormRules,
} from 'element-plus'
const emits = defineEmits(['editSucc']) const props = withDefaults(defineProps<{
const showDialog = ref(false) research?: () => void
const submiting = ref(false) }>(), {
const status = ref<'add' | 'view' | 'modify'>('add') research: () => {
},
const truckFormIns = useTemplateRef<FormInstance>('truckForm') })
const formData = ref<TruckTypes.SearchTruckResult>({})
const rules = reactive<FormRules<TruckTypes.SearchTruckResult>>({ const rules = reactive<FormRules<TruckTypes.SearchTruckResult>>({
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
customerId: [ {required: true, message: '请填写归属客户 Idcst_customer.id', trigger: 'blur'} ], customerId: [ {required: true, message: '请填写归属客户 Idcst_customer.id', trigger: 'blur'} ],
orgId: [{ required: true, message: '请填写归属组织', trigger: 'blur' }], orgId: [ {required: true, message: '请填写归属企业', trigger: 'blur'} ],
licensePlate: [ {required: true, message: '请填写车牌', trigger: 'blur'} ], licensePlate: [ {required: true, message: '请填写车牌', trigger: 'blur'} ],
truckLicense: [ {required: true, message: '请填写行驶证图片', trigger: 'blur'} ], truckLicense: [ {required: true, message: '请填写行驶证图片', trigger: 'blur'} ],
vnCode: [ {required: true, message: '请填写车架号', trigger: 'blur'} ], vnCode: [ {required: true, message: '请填写车架号', trigger: 'blur'} ],
@ -179,55 +120,44 @@ modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur'
deleted: [ {required: true, message: '请填写是否删除', trigger: 'blur'} ], deleted: [ {required: true, message: '请填写是否删除', trigger: 'blur'} ],
}) })
function dialogCloseHandler() {
formData.value = {} const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const status = ref<'add' | 'modify'>('add')
function detailsLoader(id?: string) {
if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else {
status.value = 'modify'
return TruckApi
.detail(id!)
.then(res => res.data)
}
} }
function submitHandler() { function doSubmit(data: TruckTypes.SearchTruckResult) {
if (status.value === 'view') return if (status.value === 'add') {
submiting.value = true return TruckApi.add(data)
if (formData.value.id != null) { .then(props.research)
FormUtil.submit(truckFormIns, () => TruckApi.modify(formData.value))
.then(() => {
ElMessage.success('修改成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} else { } else {
FormUtil.submit(truckFormIns, () => TruckApi.add(formData.value)) return TruckApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success('添加成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} }
} }
defineExpose({ defineExpose({
open(data: TruckTypes.SearchTruckResult = {}) { open(data?: TruckTypes.SearchTruckResult) {
showDialog.value = true formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) { },
status.value = 'modify'
TruckApi.detail(data.id!)
.then(res => {
formData.value = res.data
})
} else {
status.value = 'add'
formData.value = data
}
}
}) })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -7,7 +7,7 @@ declare global {
id?: string id?: string
// 归属客户 Idcst_customer.id // 归属客户 Idcst_customer.id
customerId?: string customerId?: string
// 归属组织 // 归属企业
orgId?: string orgId?: string
// 车牌 // 车牌
licensePlate?: string licensePlate?: string
@ -52,7 +52,7 @@ declare global {
id?: string id?: string
// 归属客户 Idcst_customer.id // 归属客户 Idcst_customer.id
customerId?: string customerId?: string
// 归属组织 // 归属企业
orgId?: string orgId?: string
// 车牌 // 车牌
licensePlate?: string licensePlate?: string
@ -97,7 +97,7 @@ declare global {
id?: string id?: string
// 归属客户 Idcst_customer.id // 归属客户 Idcst_customer.id
customerId?: string customerId?: string
// 归属组织 // 归属企业
orgId?: string orgId?: string
// 车牌 // 车牌
licensePlate?: string licensePlate?: string
@ -142,7 +142,7 @@ declare global {
id?: string id?: string
// 归属客户 Idcst_customer.id // 归属客户 Idcst_customer.id
customerId?: string customerId?: string
// 归属组织 // 归属企业
orgId?: string orgId?: string
// 车牌 // 车牌
licensePlate?: string licensePlate?: string

View File

@ -12,15 +12,15 @@
<Uploader ref="uploader" v-model:file="formData.picture"/> <Uploader ref="uploader" v-model:file="formData.picture"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="业务类型" prop="bizType"> <ElFormItem label="业务类型" prop="bizType">
<ElSelect v-model="formData.bizType" :disabled="status === 'view'" placeholder="业务类型"> <ElSelect v-model="formData.bizType" placeholder="业务类型">
<ElOption v-for="item in bizType" :key="item.val" :label="item.txt" :value="item.val"/> <ElOption v-for="item in bizType" :key="item.val" :label="item.txt" :value="item.val"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label="分类名称" prop="categoryName"> <ElFormItem label="分类名称" prop="categoryName">
<ElInput v-model="formData.categoryName" :disabled="status === 'view'" placeholder="分类名称"/> <ElInput v-model="formData.categoryName" placeholder="分类名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="排序" prop="sort"> <ElFormItem label="排序" prop="sort">
<ElInputNumber v-model="formData.sort" :disabled="status === 'view'" :min="0" placeholder="排序"/> <ElInputNumber v-model="formData.sort" :min="0" placeholder="排序"/>
</ElFormItem> </ElFormItem>
</div> </div>
</template> </template>
@ -34,6 +34,7 @@ import Uploader from '@/components/uploader/Uploader.vue'
import { type FormRules } from 'element-plus' import { type FormRules } from 'element-plus'
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue' import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
import { bizType } from '@/pages/gds/goods-category/constants.ts' import { bizType } from '@/pages/gds/goods-category/constants.ts'
import type { ComponentExposed } from 'vue-component-type-helpers'
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
research?: () => void research?: () => void
@ -41,9 +42,9 @@ const props = withDefaults(defineProps<{
research: () => { research: () => {
}, },
}) })
const formPanelIns = useTemplateRef<InstanceType<typeof AFormPanel>>('formPanel') const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const uploaderIns = useTemplateRef<InstanceType<typeof Uploader>>('uploader') const uploaderIns = useTemplateRef<InstanceType<typeof Uploader>>('uploader')
const status = ref<'add' | 'view' | 'modify'>('add') const status = ref<'add' | 'modify'>('add')
const rules = reactive<FormRules<GoodsCategoryTypes.SearchGoodsCategoryResult>>({ const rules = reactive<FormRules<GoodsCategoryTypes.SearchGoodsCategoryResult>>({
bizType: [ {required: true, message: '请填写业务类型', trigger: 'blur'} ], bizType: [ {required: true, message: '请填写业务类型', trigger: 'blur'} ],
categoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ], categoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
@ -69,7 +70,7 @@ function doSubmit(data: GoodsCategoryTypes.SearchGoodsCategoryResult) {
if (status.value === 'add') { if (status.value === 'add') {
return GoodsCategoryApi.add(data) return GoodsCategoryApi.add(data)
.then(props.research) .then(props.research)
} else if (status.value === 'modify') { } else {
return GoodsCategoryApi.modify(data) return GoodsCategoryApi.modify(data)
.then(props.research) .then(props.research)
} }

View File

@ -23,7 +23,7 @@
<ElFormItem> <ElFormItem>
<ElInput v-model="searchForm.sn" placeholder="产品编码"/> <ElInput v-model="searchForm.sn" placeholder="产品编码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="产品名称"> <ElFormItem>
<ElInput v-model="searchForm.goodsName" placeholder="产品名称"/> <ElInput v-model="searchForm.goodsName" placeholder="产品名称"/>
</ElFormItem> </ElFormItem>
</template> </template>

View File

@ -20,22 +20,22 @@
<GoodsCategoryDropTable v-model="formData.goodsCategoryId"/> <GoodsCategoryDropTable v-model="formData.goodsCategoryId"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="产品名称" prop="goodsName"> <ElFormItem label="产品名称" prop="goodsName">
<ElInput v-model="formData.goodsName" :disabled="status === 'view'" placeholder="产品名称"/> <ElInput v-model="formData.goodsName" placeholder="产品名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="规格" prop="specParams"> <ElFormItem label="规格" prop="specParams">
<ElInput v-model="formData.specParams" :disabled="status === 'view'" placeholder="规格"/> <ElInput v-model="formData.specParams" placeholder="规格"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="排序" prop="sort"> <ElFormItem label="排序" prop="sort">
<ElInputNumber v-model="formData.sort" :disabled="status === 'view'" placeholder="请输入排序"/> <ElInputNumber v-model="formData.sort" placeholder="请输入排序"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="计量单位" prop="unit"> <ElFormItem label="计量单位" prop="unit">
<ADict v-model="formData.unit" :disabled="status === 'view'" dict-key="unit" placeholder="计量单位"/> <ADict v-model="formData.unit" dict-key="unit" placeholder="计量单位"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="是否可用" prop="canuse"> <ElFormItem label="是否可用" prop="canuse">
<el-switch v-model="formData.canuse" :disabled="status === 'view'"/> <el-switch v-model="formData.canuse"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="备注" prop="memo"> <ElFormItem label="备注" prop="memo">
<ElInput v-model="formData.memo" :disabled="status === 'view'" placeholder="请输入备注"/> <ElInput v-model="formData.memo" placeholder="请输入备注"/>
</ElFormItem> </ElFormItem>
</div> </div>
</template> </template>
@ -50,6 +50,7 @@ import Uploader from '@/components/uploader/Uploader.vue'
import ADict from '@/components/a-dict/ADict.vue' import ADict from '@/components/a-dict/ADict.vue'
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue' import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
import GoodsCategoryDropTable from '@/pages/gds/goods-category/GoodsCategoryDropTable.vue' import GoodsCategoryDropTable from '@/pages/gds/goods-category/GoodsCategoryDropTable.vue'
import type { ComponentExposed } from 'vue-component-type-helpers'
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
research?: () => void research?: () => void
@ -58,9 +59,9 @@ const props = withDefaults(defineProps<{
}, },
}) })
const formPanelIns = useTemplateRef<InstanceType<typeof AFormPanel>>('formPanel') const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const uploaderIns = useTemplateRef<InstanceType<typeof Uploader>>('uploader') const uploaderIns = useTemplateRef<InstanceType<typeof Uploader>>('uploader')
const status = ref<'add' | 'view' | 'modify'>('add') const status = ref<'add' | 'modify'>('add')
const rules = reactive<FormRules<GoodsTypes.SearchGoodsResult>>({ const rules = reactive<FormRules<GoodsTypes.SearchGoodsResult>>({
goodsCategoryId: [ {required: true, message: '请填写产品类型', trigger: 'blur'} ], goodsCategoryId: [ {required: true, message: '请填写产品类型', trigger: 'blur'} ],
sn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ], sn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
@ -91,7 +92,7 @@ function doSubmit(data: GoodsTypes.SearchGoodsResult) {
if (status.value === 'add') { if (status.value === 'add') {
return GoodsApi.add(data) return GoodsApi.add(data)
.then(props.research) .then(props.research)
} else if (status.value === 'modify') { } else {
return GoodsApi.modify(data) return GoodsApi.modify(data)
.then(props.research) .then(props.research)
} }

View File

@ -9,37 +9,37 @@
:rules="rules" :rules="rules"
class="form-panel" class="form-panel"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="产品" prop="goodsId"> <ElFormItem label="产品" prop="goodsId">
<ADropTable v-model="formData.goodsId as string" :columns="dropTableColumns" :loader="dropTableLoader" display-field="goodsName"/> <ADropTable v-model="formData.goodsId as string" :columns="dropTableColumns" :loader="dropTableLoader" display-field="goodsName"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="工艺名称" prop="craftName"> <ElFormItem label="工艺名称" prop="craftName">
<ElInput <ElInput
v-model="formData.craftName" v-model="formData.craftName"
:disabled="status === 'view'"
placeholder="工艺名称"/> placeholder="工艺名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="工艺版本号" prop="craftVer"> <ElFormItem label="工艺版本号" prop="craftVer">
<ElInput <ElInput
v-model="formData.craftVer" v-model="formData.craftVer"
:disabled="status === 'view'"
placeholder="工艺版本号"/> placeholder="工艺版本号"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="工艺类型" prop="craftCategory"> <ElFormItem label="工艺类型" prop="craftCategory">
<ElSelect v-model="formData.craftCategory"> <ElSelect v-model="formData.craftCategory">
<ElOption label="自动化" value="ZiDongHua"/> <ElOption label="自动化" value="ZiDongHua"/>
<ElOption label="人工" value="RenGong"/> <ElOption label="人工" value="RenGong"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注" prop="memo"> <ElFormItem label="备注" prop="memo">
<ElInput <ElInput
v-model="formData.memo" v-model="formData.memo"
:disabled="status === 'view'"
placeholder="备注"/> placeholder="备注"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="是否可用" prop="canuse"> <ElFormItem label="是否可用" prop="canuse">
<ElCheckbox <ElCheckbox
v-model="formData.canuse" v-model="formData.canuse"
:disabled="status === 'view'"
placeholder="是否可用"/> placeholder="是否可用"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>

View File

@ -31,8 +31,8 @@
<ElFormItem label="完结时间"> <ElFormItem label="完结时间">
<ElInput v-model="searchForm.finishTime" placeholder="完结时间" /> <ElInput v-model="searchForm.finishTime" placeholder="完结时间" />
</ElFormItem> </ElFormItem>
<ElFormItem label="运输组织"> <ElFormItem label="运输企业">
<ElInput v-model="searchForm.transOrgId" placeholder="运输组织" /> <ElInput v-model="searchForm.transOrgId" placeholder="运输企业"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="指派清运公司时间"> <ElFormItem label="指派清运公司时间">
<ElInput v-model="searchForm.assignmentTransTime" placeholder="指派清运公司时间" /> <ElInput v-model="searchForm.assignmentTransTime" placeholder="指派清运公司时间" />

View File

@ -37,7 +37,7 @@
<ElDescriptionsItem label="完结时间" prop="finishTime"> <ElDescriptionsItem label="完结时间" prop="finishTime">
{{ detailData.finishTime }} {{ detailData.finishTime }}
</ElDescriptionsItem> </ElDescriptionsItem>
<ElDescriptionsItem label="运输组织 Idcst_org.id" prop="transOrgId"> <ElDescriptionsItem label="运输企业 Idcst_org.id" prop="transOrgId">
{{ detailData.transOrgId }} {{ detailData.transOrgId }}
</ElDescriptionsItem> </ElDescriptionsItem>
<ElDescriptionsItem label="运输方客户 Id" prop="transCustomerId"> <ElDescriptionsItem label="运输方客户 Id" prop="transCustomerId">

View File

@ -9,166 +9,166 @@
ref="orderForm" ref="orderForm"
class="form-panel" class="form-panel"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="Id" prop="id"> <ElFormItem label="Id" prop="id">
<ElInput <ElInput
v-model="formData.id" v-model="formData.id"
:disabled="status === 'view'"
placeholder="Id"/> placeholder="Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="订单编号" prop="sn"> <ElFormItem label="订单编号" prop="sn">
<ElInput <ElInput
v-model="formData.sn" v-model="formData.sn"
:disabled="status === 'view'"
placeholder="订单编号"/> placeholder="订单编号"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="项目 Id" prop="projectId"> <ElFormItem label="项目 Id" prop="projectId">
<ElInput <ElInput
v-model="formData.projectId" v-model="formData.projectId"
:disabled="status === 'view'"
placeholder="项目 Id"/> placeholder="项目 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="下单人 Idsys_user.id" prop="userId"> <ElFormItem label="下单人 Idsys_user.id" prop="userId">
<ElInput <ElInput
v-model="formData.userId" v-model="formData.userId"
:disabled="status === 'view'"
placeholder="下单人 Idsys_user.id"/> placeholder="下单人 Idsys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="下单人客户 Idcst_customer.id" prop="customerId"> <ElFormItem label="下单人客户 Idcst_customer.id" prop="customerId">
<ElInput <ElInput
v-model="formData.customerId" v-model="formData.customerId"
:disabled="status === 'view'"
placeholder="下单人客户 Idcst_customer.id"/> placeholder="下单人客户 Idcst_customer.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="下单人姓名" prop="contacts"> <ElFormItem label="下单人姓名" prop="contacts">
<ElInput <ElInput
v-model="formData.contacts" v-model="formData.contacts"
:disabled="status === 'view'"
placeholder="下单人姓名"/> placeholder="下单人姓名"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="下单人联系方式" prop="phone"> <ElFormItem label="下单人联系方式" prop="phone">
<ElInput <ElInput
v-model="formData.phone" v-model="formData.phone"
:disabled="status === 'view'"
placeholder="下单人联系方式"/> placeholder="下单人联系方式"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="下单时间" prop="orderTime"> <ElFormItem label="下单时间" prop="orderTime">
<ElInput <ElInput
v-model="formData.orderTime" v-model="formData.orderTime"
:disabled="status === 'view'"
placeholder="下单时间"/> placeholder="下单时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="订单类型字典代码order_categoryHuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出" prop="orderCategory"> <ElFormItem label="订单类型字典代码order_categoryHuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出" prop="orderCategory">
<ElInput <ElInput
v-model="formData.orderCategory" v-model="formData.orderCategory"
:disabled="status === 'view'"
placeholder="订单类型字典代码order_categoryHuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出"/> placeholder="订单类型字典代码order_categoryHuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="订单状态字典代码order_statusYiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消" prop="orderStatus"> <ElFormItem label="订单状态字典代码order_statusYiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消" prop="orderStatus">
<ElInput <ElInput
v-model="formData.orderStatus" v-model="formData.orderStatus"
:disabled="status === 'view'"
placeholder="订单状态字典代码order_statusYiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消"/> placeholder="订单状态字典代码order_statusYiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="完结时间" prop="finishTime"> <ElFormItem label="完结时间" prop="finishTime">
<ElInput <ElInput
v-model="formData.finishTime" v-model="formData.finishTime"
:disabled="status === 'view'"
placeholder="完结时间"/> placeholder="完结时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="运输组织 Idcst_org.id" prop="transOrgId"> <ElFormItem label="运输企业 Idcst_org.id" prop="transOrgId">
<ElInput <ElInput
v-model="formData.transOrgId" v-model="formData.transOrgId"
:disabled="status === 'view'"
placeholder="运输组织 Idcst_org.id"/> placeholder="运输企业 Idcst_org.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="运输方客户 Id" prop="transCustomerId"> <ElFormItem label="运输方客户 Id" prop="transCustomerId">
<ElInput <ElInput
v-model="formData.transCustomerId" v-model="formData.transCustomerId"
:disabled="status === 'view'"
placeholder="运输方客户 Id"/> placeholder="运输方客户 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="指派清运公司时间" prop="assignmentTransTime"> <ElFormItem label="指派清运公司时间" prop="assignmentTransTime">
<ElInput <ElInput
v-model="formData.assignmentTransTime" v-model="formData.assignmentTransTime"
:disabled="status === 'view'"
placeholder="指派清运公司时间"/> placeholder="指派清运公司时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="站点 Idcst_station.id" prop="stationId"> <ElFormItem label="站点 Idcst_station.id" prop="stationId">
<ElInput <ElInput
v-model="formData.stationId" v-model="formData.stationId"
:disabled="status === 'view'"
placeholder="站点 Idcst_station.id"/> placeholder="站点 Idcst_station.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="站点名称cst_station.station.name" prop="stationName"> <ElFormItem label="站点名称cst_station.station.name" prop="stationName">
<ElInput <ElInput
v-model="formData.stationName" v-model="formData.stationName"
:disabled="status === 'view'"
placeholder="站点名称cst_station.station.name"/> placeholder="站点名称cst_station.station.name"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="运距;单位:米" prop="transDistance"> <ElFormItem label="运距;单位:米" prop="transDistance">
<ElInput <ElInput
v-model="formData.transDistance" v-model="formData.transDistance"
:disabled="status === 'view'"
placeholder="运距;单位:米"/> placeholder="运距;单位:米"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="预估量" prop="estimatedQuantity"> <ElFormItem label="预估量" prop="estimatedQuantity">
<ElInput <ElInput
v-model="formData.estimatedQuantity" v-model="formData.estimatedQuantity"
:disabled="status === 'view'"
placeholder="预估量"/> placeholder="预估量"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="预估车数" prop="estimatedTrainNum"> <ElFormItem label="预估车数" prop="estimatedTrainNum">
<ElInput <ElInput
v-model="formData.estimatedTrainNum" v-model="formData.estimatedTrainNum"
:disabled="status === 'view'"
placeholder="预估车数"/> placeholder="预估车数"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="产品 Id" prop="goodsId"> <ElFormItem label="产品 Id" prop="goodsId">
<ElInput <ElInput
v-model="formData.goodsId" v-model="formData.goodsId"
:disabled="status === 'view'"
placeholder="产品 Id"/> placeholder="产品 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="产品名称" prop="goodsName"> <ElFormItem label="产品名称" prop="goodsName">
<ElInput <ElInput
v-model="formData.goodsName" v-model="formData.goodsName"
:disabled="status === 'view'"
placeholder="产品名称"/> placeholder="产品名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="计量单位字典代码unit" prop="unit"> <ElFormItem label="计量单位字典代码unit" prop="unit">
<ElInput <ElInput
v-model="formData.unit" v-model="formData.unit"
:disabled="status === 'view'"
placeholder="计量单位字典代码unit"/> placeholder="计量单位字典代码unit"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="客户备注" prop="customerMemo"> <ElFormItem label="客户备注" prop="customerMemo">
<ElInput <ElInput
v-model="formData.customerMemo" v-model="formData.customerMemo"
:disabled="status === 'view'"
placeholder="客户备注"/> placeholder="客户备注"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="创建人 Id sys_user.id" prop="creatorId"> <ElFormItem label="创建人 Id sys_user.id" prop="creatorId">
<ElInput <ElInput
v-model="formData.creatorId" v-model="formData.creatorId"
:disabled="status === 'view'"
placeholder="创建人 Id sys_user.id"/> placeholder="创建人 Id sys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="修改人 Id sys_user.id" prop="modifierId"> <ElFormItem label="修改人 Id sys_user.id" prop="modifierId">
<ElInput <ElInput
v-model="formData.modifierId" v-model="formData.modifierId"
:disabled="status === 'view'"
placeholder="修改人 Id sys_user.id"/> placeholder="修改人 Id sys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="创建时间" prop="createTime"> <ElFormItem label="创建时间" prop="createTime">
<ElInput <ElInput
v-model="formData.createTime" v-model="formData.createTime"
:disabled="status === 'view'"
placeholder="创建时间"/> placeholder="创建时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="修改时间" prop="modifyTime"> <ElFormItem label="修改时间" prop="modifyTime">
<ElInput <ElInput
v-model="formData.modifyTime" v-model="formData.modifyTime"
:disabled="status === 'view'"
placeholder="修改时间"/> placeholder="修改时间"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
@ -210,7 +210,7 @@ orderTime: [{ required: true, message: '请填写下单时间', trigger: 'blur'
orderCategory: [{ required: true, message: '请填写订单类型字典代码order_categoryHuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出', trigger: 'blur' }], orderCategory: [{ required: true, message: '请填写订单类型字典代码order_categoryHuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出', trigger: 'blur' }],
orderStatus: [{ required: true, message: '请填写订单状态字典代码order_statusYiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消', trigger: 'blur' }], orderStatus: [{ required: true, message: '请填写订单状态字典代码order_statusYiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消', trigger: 'blur' }],
finishTime: [{ required: true, message: '请填写完结时间', trigger: 'blur' }], finishTime: [{ required: true, message: '请填写完结时间', trigger: 'blur' }],
transOrgId: [{ required: true, message: '请填写运输组织 Idcst_org.id', trigger: 'blur' }], transOrgId: [ {required: true, message: '请填写运输企业 Idcst_org.id', trigger: 'blur'} ],
transCustomerId: [{ required: true, message: '请填写运输方客户 Id', trigger: 'blur' }], transCustomerId: [{ required: true, message: '请填写运输方客户 Id', trigger: 'blur' }],
assignmentTransTime: [{ required: true, message: '请填写指派清运公司时间', trigger: 'blur' }], assignmentTransTime: [{ required: true, message: '请填写指派清运公司时间', trigger: 'blur' }],
stationId: [{ required: true, message: '请填写站点 Idcst_station.id', trigger: 'blur' }], stationId: [{ required: true, message: '请填写站点 Idcst_station.id', trigger: 'blur' }],

View File

@ -25,7 +25,7 @@ declare global {
orderStatus?: string orderStatus?: string
// 完结时间 // 完结时间
finishTime?: string finishTime?: string
// 运输组织 Idcst_org.id // 运输企业 Idcst_org.id
transOrgId?: string transOrgId?: string
// 运输方客户 Id // 运输方客户 Id
transCustomerId?: string transCustomerId?: string
@ -84,7 +84,7 @@ declare global {
orderStatus?: string orderStatus?: string
// 完结时间 // 完结时间
finishTime?: string finishTime?: string
// 运输组织 Idcst_org.id // 运输企业 Idcst_org.id
transOrgId?: string transOrgId?: string
// 运输方客户 Id // 运输方客户 Id
transCustomerId?: string transCustomerId?: string
@ -143,7 +143,7 @@ declare global {
orderStatus?: string orderStatus?: string
// 完结时间 // 完结时间
finishTime?: string finishTime?: string
// 运输组织 Idcst_org.id // 运输企业 Idcst_org.id
transOrgId?: string transOrgId?: string
// 运输方客户 Id // 运输方客户 Id
transCustomerId?: string transCustomerId?: string
@ -202,7 +202,7 @@ declare global {
orderStatus?: string orderStatus?: string
// 完结时间 // 完结时间
finishTime?: string finishTime?: string
// 运输组织 Idcst_org.id // 运输企业 Idcst_org.id
transOrgId?: string transOrgId?: string
// 运输方客户 Id // 运输方客户 Id
transCustomerId?: string transCustomerId?: string

View File

@ -1,7 +1,7 @@
<template> <template>
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler"> <ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
<ElForm :model="formData" :rules="rules" ref="transForm" class="form-panel" label-width="auto"> <ElForm :model="formData" :rules="rules" ref="transForm" class="form-panel" label-width="auto">
<ElFormItem label-width="90" label="看料照片" prop="checkPhoto"> <ElFormItem label="看料照片" prop="checkPhoto">
<Uploader v-model:files="formData.checkPhoto" <Uploader v-model:files="formData.checkPhoto"
:limit="3" :limit="3"
:upload-props="{ :upload-props="{
@ -10,8 +10,8 @@
}"/> }"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注" prop="weight"> <ElFormItem label="备注" prop="weight">
<ElInput v-model="formData.checkerMemo" :disabled="status === 'view'" placeholder="请输入备注"></ElInput> <ElInput v-model="formData.checkerMemo" placeholder="请输入备注"></ElInput>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
<template #footer> <template #footer>

View File

@ -1,13 +1,13 @@
<template> <template>
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler"> <ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
<ElForm :model="formData" :rules="rules" ref="transForm" class="form-panel" label-width="auto"> <ElForm :model="formData" :rules="rules" ref="transForm" class="form-panel" label-width="auto">
<ElFormItem label-width="90" label="磅重" prop="weight"> <ElFormItem label="磅重" prop="weight">
<ElInput v-model="formData.weight" type="number" :disabled="status === 'view'" placeholder="请输入磅重"> <ElInput v-model="formData.weight" placeholder="请输入磅重" type="number">
<template #append></template> <template #append></template>
</ElInput> </ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车头照" prop="cargoPhoto"> <ElFormItem label="车头照" prop="cargoPhoto">
<Uploader v-model:file="formData.cargoPhoto" <Uploader v-model:file="formData.cargoPhoto"
:upload-props="{ :upload-props="{
accept: 'image/*', accept: 'image/*',
@ -15,7 +15,7 @@
}"/> }"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车斗照" prop="bodyPhoto"> <ElFormItem label="车斗照" prop="bodyPhoto">
<Uploader v-model:file="formData.bodyPhoto" <Uploader v-model:file="formData.bodyPhoto"
:upload-props="{ :upload-props="{
accept: 'image/*', accept: 'image/*',

View File

@ -1,13 +1,13 @@
<template> <template>
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler"> <ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
<ElForm :model="formData" :rules="rules" ref="transForm" class="form-panel" label-width="auto"> <ElForm :model="formData" :rules="rules" ref="transForm" class="form-panel" label-width="auto">
<ElFormItem label-width="90" label="磅重" prop="weight"> <ElFormItem label="磅重" prop="weight">
<ElInput v-model="formData.weight" type="number" :disabled="status === 'view'" placeholder="请输入磅重"> <ElInput v-model="formData.weight" placeholder="请输入磅重" type="number">
<template #append></template> <template #append></template>
</ElInput> </ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车头照" prop="cargoPhoto"> <ElFormItem label="车头照" prop="cargoPhoto">
<Uploader v-model:file="formData.cargoPhoto" <Uploader v-model:file="formData.cargoPhoto"
:upload-props="{ :upload-props="{
accept: 'image/*', accept: 'image/*',
@ -15,7 +15,7 @@
}"/> }"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车斗照" prop="bodyPhoto"> <ElFormItem label="车斗照" prop="bodyPhoto">
<Uploader v-model:file="formData.bodyPhoto" <Uploader v-model:file="formData.bodyPhoto"
:upload-props="{ :upload-props="{
accept: 'image/*', accept: 'image/*',

View File

@ -1,33 +1,33 @@
<template> <template>
<Page> <Page>
<ElForm v-show="showSearchForm" inline @submit.prevent="paging"> <ElForm v-show="showSearchForm" inline @submit.prevent="paging">
<ElFormItem label-width="90" label="车次"> <ElFormItem label="车次">
<ElInput v-model="searchForm.trainNum" placeholder="车次" /> <ElInput v-model="searchForm.trainNum" placeholder="车次" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="订单 Id"> <ElFormItem label="订单 Id">
<ElInput v-model="searchForm.orderId" placeholder="订单 Id" /> <ElInput v-model="searchForm.orderId" placeholder="订单 Id" />
</ElFormItem> </ElFormItem>
<!-- 字典代码trans_statusDaiPaiDan--待派单DaiJieDan--待接单YiJieDan--已接单YunShuZhong--运输中YiJinChang--已进场YiChuChang--已出场YiWanCheng--已完成YiQuXiao--已取消 --> <!-- 字典代码trans_statusDaiPaiDan--待派单DaiJieDan--待接单YiJieDan--已接单YunShuZhong--运输中YiJinChang--已进场YiChuChang--已出场YiWanCheng--已完成YiQuXiao--已取消 -->
<ElFormItem label-width="90" label="运输状态"> <ElFormItem label="运输状态">
<ElInput v-model="searchForm.transStatus" placeholder="运输状态" /> <ElInput v-model="searchForm.transStatus" placeholder="运输状态" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车道名称"> <ElFormItem label="车道名称">
<ElInput v-model="searchForm.lane" placeholder="车道名称" /> <ElInput v-model="searchForm.lane" placeholder="车道名称" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="勘料状态"> <ElFormItem label="勘料状态">
<!-- 字典代码check_statusWu--无需勘料YiKanLiao--已勘料WeiKanLiao--未勘料 --> <!-- 字典代码check_statusWu--无需勘料YiKanLiao--已勘料WeiKanLiao--未勘料 -->
<ElInput v-model="searchForm.checkStatus" placeholder="勘料状态" /> <ElInput v-model="searchForm.checkStatus" placeholder="勘料状态" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车辆 Id"> <ElFormItem label="车辆 Id">
<ElInput v-model="searchForm.truckId" placeholder="车辆 Id" /> <ElInput v-model="searchForm.truckId" placeholder="车辆 Id" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车牌号"> <ElFormItem label="车牌号">
<ElInput v-model="searchForm.truckLicensePlate" placeholder="车牌号" /> <ElInput v-model="searchForm.truckLicensePlate" placeholder="车牌号" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="历史皮重"> <ElFormItem label="历史皮重">
<ElInput v-model="searchForm.historyTareWeight" placeholder="历史皮重" /> <ElInput v-model="searchForm.historyTareWeight" placeholder="历史皮重" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="创建时间"> <ElFormItem label="创建时间">
<ElInput v-model="searchForm.createTime" placeholder="创建时间" /> <ElInput v-model="searchForm.createTime" placeholder="创建时间" />
</ElFormItem> </ElFormItem>
@ -56,7 +56,7 @@
<ElTableColumn label="勘料时间" prop="checkTime" width="160" /> <ElTableColumn label="勘料时间" prop="checkTime" width="160" />
<ElTableColumn label="司机 Id" prop="driverId" /> <ElTableColumn label="司机 Id" prop="driverId" />
<!-- <ElTableColumn label="司机所属用户 Id" prop="driverUserId" /> --> <!-- <ElTableColumn label="司机所属用户 Id" prop="driverUserId" /> -->
<ElTableColumn label="归属组织" prop="truckOrgId" /> <ElTableColumn label="归属企业" prop="truckOrgId"/>
<ElTableColumn label="车辆 Id" prop="truckId" /> <ElTableColumn label="车辆 Id" prop="truckId" />
<ElTableColumn label="车牌号" width="100" prop="truckLicensePlate" /> <ElTableColumn label="车牌号" width="100" prop="truckLicensePlate" />
<ElTableColumn label="历史皮重" prop="historyTareWeight" /> <ElTableColumn label="历史皮重" prop="historyTareWeight" />

View File

@ -58,7 +58,7 @@
<ElDescriptionsItem label="归属客户 Idcst_customer.id" prop="truckCustomerId"> <ElDescriptionsItem label="归属客户 Idcst_customer.id" prop="truckCustomerId">
{{ detailData.truckCustomerId }} {{ detailData.truckCustomerId }}
</ElDescriptionsItem> </ElDescriptionsItem>
<ElDescriptionsItem label="归属组织" prop="truckOrgId"> <ElDescriptionsItem label="归属企业" prop="truckOrgId">
{{ detailData.truckOrgId }} {{ detailData.truckOrgId }}
</ElDescriptionsItem> </ElDescriptionsItem>
<ElDescriptionsItem label="车辆 Id" prop="truckId"> <ElDescriptionsItem label="车辆 Id" prop="truckId">

View File

@ -9,280 +9,280 @@
ref="transForm" ref="transForm"
class="form-panel" class="form-panel"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="Id" prop="id"> <ElFormItem label="Id" prop="id">
<ElInput <ElInput
v-model="formData.id" v-model="formData.id"
:disabled="status === 'view'"
placeholder="Id"/> placeholder="Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车次" prop="trainNum"> <ElFormItem label="车次" prop="trainNum">
<ElInput <ElInput
v-model="formData.trainNum" v-model="formData.trainNum"
:disabled="status === 'view'"
placeholder="车次"/> placeholder="车次"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="订单 Id" prop="orderId"> <ElFormItem label="订单 Id" prop="orderId">
<ElInput <ElInput
v-model="formData.orderId" v-model="formData.orderId"
:disabled="status === 'view'"
placeholder="订单 Id"/> placeholder="订单 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车道名称" prop="lane"> <ElFormItem label="车道名称" prop="lane">
<ElInput <ElInput
v-model="formData.lane" v-model="formData.lane"
:disabled="status === 'view'"
placeholder="车道名称"/> placeholder="车道名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="指派司机时间" prop="assignmentDriverTime"> <ElFormItem label="指派司机时间" prop="assignmentDriverTime">
<ElInput <ElInput
v-model="formData.assignmentDriverTime" v-model="formData.assignmentDriverTime"
:disabled="status === 'view'"
placeholder="指派司机时间"/> placeholder="指派司机时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="司机确认接单时间" prop="driverConfirmTime"> <ElFormItem label="司机确认接单时间" prop="driverConfirmTime">
<ElInput <ElInput
v-model="formData.driverConfirmTime" v-model="formData.driverConfirmTime"
:disabled="status === 'view'"
placeholder="司机确认接单时间"/> placeholder="司机确认接单时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="开始运输时间" prop="transTime"> <ElFormItem label="开始运输时间" prop="transTime">
<ElInput <ElInput
v-model="formData.transTime" v-model="formData.transTime"
:disabled="status === 'view'"
placeholder="开始运输时间"/> placeholder="开始运输时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="完结时间" prop="finishTime"> <ElFormItem label="完结时间" prop="finishTime">
<ElInput <ElInput
v-model="formData.finishTime" v-model="formData.finishTime"
:disabled="status === 'view'"
placeholder="完结时间"/> placeholder="完结时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="看料员 Idsys_user.id" prop="checkerId"> <ElFormItem label="看料员 Idsys_user.id" prop="checkerId">
<ElInput <ElInput
v-model="formData.checkerId" v-model="formData.checkerId"
:disabled="status === 'view'"
placeholder="看料员 Idsys_user.id"/> placeholder="看料员 Idsys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="勘料状态字典代码check_statusWu-->无需勘料、YiKanLiao-->已勘料、WeiKanLiao-->未勘料" prop="checkStatus"> <ElFormItem label="勘料状态字典代码check_statusWu-->无需勘料、YiKanLiao-->已勘料、WeiKanLiao-->未勘料" prop="checkStatus">
<ElInput <ElInput
v-model="formData.checkStatus" v-model="formData.checkStatus"
:disabled="status === 'view'"
placeholder="勘料状态字典代码check_statusWu-->无需勘料、YiKanLiao-->已勘料、WeiKanLiao-->未勘料"/> placeholder="勘料状态字典代码check_statusWu-->无需勘料、YiKanLiao-->已勘料、WeiKanLiao-->未勘料"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="勘料时间" prop="checkTime"> <ElFormItem label="勘料时间" prop="checkTime">
<ElInput <ElInput
v-model="formData.checkTime" v-model="formData.checkTime"
:disabled="status === 'view'"
placeholder="勘料时间"/> placeholder="勘料时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="勘料照片" prop="checkPhoto"> <ElFormItem label="勘料照片" prop="checkPhoto">
<ElInput <ElInput
v-model="formData.checkPhoto" v-model="formData.checkPhoto"
:disabled="status === 'view'"
placeholder="勘料照片"/> placeholder="勘料照片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="勘料员备注" prop="checkerMemo"> <ElFormItem label="勘料员备注" prop="checkerMemo">
<ElInput <ElInput
v-model="formData.checkerMemo" v-model="formData.checkerMemo"
:disabled="status === 'view'"
placeholder="勘料员备注"/> placeholder="勘料员备注"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="司机 Id" prop="driverId"> <ElFormItem label="司机 Id" prop="driverId">
<ElInput <ElInput
v-model="formData.driverId" v-model="formData.driverId"
:disabled="status === 'view'"
placeholder="司机 Id"/> placeholder="司机 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="司机所属客户 Idcst_customer.id" prop="driverCustomerId"> <ElFormItem label="司机所属客户 Idcst_customer.id" prop="driverCustomerId">
<ElInput <ElInput
v-model="formData.driverCustomerId" v-model="formData.driverCustomerId"
:disabled="status === 'view'"
placeholder="司机所属客户 Idcst_customer.id"/> placeholder="司机所属客户 Idcst_customer.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="司机所属用户 Id" prop="driverUserId"> <ElFormItem label="司机所属用户 Id" prop="driverUserId">
<ElInput <ElInput
v-model="formData.driverUserId" v-model="formData.driverUserId"
:disabled="status === 'view'"
placeholder="司机所属用户 Id"/> placeholder="司机所属用户 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="归属客户 Idcst_customer.id" prop="truckCustomerId"> <ElFormItem label="归属客户 Idcst_customer.id" prop="truckCustomerId">
<ElInput <ElInput
v-model="formData.truckCustomerId" v-model="formData.truckCustomerId"
:disabled="status === 'view'"
placeholder="归属客户 Idcst_customer.id"/> placeholder="归属客户 Idcst_customer.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="归属组织" prop="truckOrgId"> <ElFormItem label="归属企业" prop="truckOrgId">
<ElInput <ElInput
v-model="formData.truckOrgId" v-model="formData.truckOrgId"
:disabled="status === 'view'"
placeholder="归属组织"/> placeholder="归属企业"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车辆 Id" prop="truckId"> <ElFormItem label="车辆 Id" prop="truckId">
<ElInput <ElInput
v-model="formData.truckId" v-model="formData.truckId"
:disabled="status === 'view'"
placeholder="车辆 Id"/> placeholder="车辆 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="车牌号" prop="truckLicensePlate"> <ElFormItem label="车牌号" prop="truckLicensePlate">
<ElInput <ElInput
v-model="formData.truckLicensePlate" v-model="formData.truckLicensePlate"
:disabled="status === 'view'"
placeholder="车牌号"/> placeholder="车牌号"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="历史皮重" prop="historyTareWeight"> <ElFormItem label="历史皮重" prop="historyTareWeight">
<ElInput <ElInput
v-model="formData.historyTareWeight" v-model="formData.historyTareWeight"
:disabled="status === 'view'"
placeholder="历史皮重"/> placeholder="历史皮重"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="毛重;单位:千克" prop="roughWeight"> <ElFormItem label="毛重;单位:千克" prop="roughWeight">
<ElInput <ElInput
v-model="formData.roughWeight" v-model="formData.roughWeight"
:disabled="status === 'view'"
placeholder="毛重;单位:千克"/> placeholder="毛重;单位:千克"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="皮重;单位:千克" prop="tareWeight"> <ElFormItem label="皮重;单位:千克" prop="tareWeight">
<ElInput <ElInput
v-model="formData.tareWeight" v-model="formData.tareWeight"
:disabled="status === 'view'"
placeholder="皮重;单位:千克"/> placeholder="皮重;单位:千克"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="净重;单位:千克" prop="settleWeight"> <ElFormItem label="净重;单位:千克" prop="settleWeight">
<ElInput <ElInput
v-model="formData.settleWeight" v-model="formData.settleWeight"
:disabled="status === 'view'"
placeholder="净重;单位:千克"/> placeholder="净重;单位:千克"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="运距;单位:米" prop="transDistance"> <ElFormItem label="运距;单位:米" prop="transDistance">
<ElInput <ElInput
v-model="formData.transDistance" v-model="formData.transDistance"
:disabled="status === 'view'"
placeholder="运距;单位:米"/> placeholder="运距;单位:米"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="进场车头照片" prop="inFrontPhoto"> <ElFormItem label="进场车头照片" prop="inFrontPhoto">
<ElInput <ElInput
v-model="formData.inFrontPhoto" v-model="formData.inFrontPhoto"
:disabled="status === 'view'"
placeholder="进场车头照片"/> placeholder="进场车头照片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="进场车斗照片" prop="inBodyPhoto"> <ElFormItem label="进场车斗照片" prop="inBodyPhoto">
<ElInput <ElInput
v-model="formData.inBodyPhoto" v-model="formData.inBodyPhoto"
:disabled="status === 'view'"
placeholder="进场车斗照片"/> placeholder="进场车斗照片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="出场车头照片" prop="outFrontPhoto"> <ElFormItem label="出场车头照片" prop="outFrontPhoto">
<ElInput <ElInput
v-model="formData.outFrontPhoto" v-model="formData.outFrontPhoto"
:disabled="status === 'view'"
placeholder="出场车头照片"/> placeholder="出场车头照片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="出场车斗照片" prop="outBodyPhoto"> <ElFormItem label="出场车斗照片" prop="outBodyPhoto">
<ElInput <ElInput
v-model="formData.outBodyPhoto" v-model="formData.outBodyPhoto"
:disabled="status === 'view'"
placeholder="出场车斗照片"/> placeholder="出场车斗照片"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="进场时间" prop="inTime"> <ElFormItem label="进场时间" prop="inTime">
<ElInput <ElInput
v-model="formData.inTime" v-model="formData.inTime"
:disabled="status === 'view'"
placeholder="进场时间"/> placeholder="进场时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="出场时间" prop="outTime"> <ElFormItem label="出场时间" prop="outTime">
<ElInput <ElInput
v-model="formData.outTime" v-model="formData.outTime"
:disabled="status === 'view'"
placeholder="出场时间"/> placeholder="出场时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="支付状态MianFei-->免费、WeiZhiFu-->未支付、YiZhiFu-->已支付、YiTuiKuan-->已退款" prop="paymentStatus"> <ElFormItem label="支付状态MianFei-->免费、WeiZhiFu-->未支付、YiZhiFu-->已支付、YiTuiKuan-->已退款" prop="paymentStatus">
<ElInput <ElInput
v-model="formData.paymentStatus" v-model="formData.paymentStatus"
:disabled="status === 'view'"
placeholder="支付状态MianFei-->免费、WeiZhiFu-->未支付、YiZhiFu-->已支付、YiTuiKuan-->已退款"/> placeholder="支付状态MianFei-->免费、WeiZhiFu-->未支付、YiZhiFu-->已支付、YiTuiKuan-->已退款"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="支付时间" prop="payTime"> <ElFormItem label="支付时间" prop="payTime">
<ElInput <ElInput
v-model="formData.payTime" v-model="formData.payTime"
:disabled="status === 'view'"
placeholder="支付时间"/> placeholder="支付时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="退款时间" prop="refundTime"> <ElFormItem label="退款时间" prop="refundTime">
<ElInput <ElInput
v-model="formData.refundTime" v-model="formData.refundTime"
:disabled="status === 'view'"
placeholder="退款时间"/> placeholder="退款时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="总金额;单位:元" prop="totalMoney"> <ElFormItem label="总金额;单位:元" prop="totalMoney">
<ElInput <ElInput
v-model="formData.totalMoney" v-model="formData.totalMoney"
:disabled="status === 'view'"
placeholder="总金额;单位:元"/> placeholder="总金额;单位:元"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="优惠金额;单位:元,有正负" prop="discountMoney"> <ElFormItem label="优惠金额;单位:元,有正负" prop="discountMoney">
<ElInput <ElInput
v-model="formData.discountMoney" v-model="formData.discountMoney"
:disabled="status === 'view'"
placeholder="优惠金额;单位:元,有正负"/> placeholder="优惠金额;单位:元,有正负"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="手动修正金额;单位:元,有正负" prop="reviseMoney"> <ElFormItem label="手动修正金额;单位:元,有正负" prop="reviseMoney">
<ElInput <ElInput
v-model="formData.reviseMoney" v-model="formData.reviseMoney"
:disabled="status === 'view'"
placeholder="手动修正金额;单位:元,有正负"/> placeholder="手动修正金额;单位:元,有正负"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="结算金额;单位:元" prop="settleMoney"> <ElFormItem label="结算金额;单位:元" prop="settleMoney">
<ElInput <ElInput
v-model="formData.settleMoney" v-model="formData.settleMoney"
:disabled="status === 'view'"
placeholder="结算金额;单位:元"/> placeholder="结算金额;单位:元"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="结算方式YueJie-->月结、YuE-->余额、XianFu-->现付" prop="settlementWay"> <ElFormItem label="结算方式YueJie-->月结、YuE-->余额、XianFu-->现付" prop="settlementWay">
<ElInput <ElInput
v-model="formData.settlementWay" v-model="formData.settlementWay"
:disabled="status === 'view'"
placeholder="结算方式YueJie-->月结、YuE-->余额、XianFu-->现付"/> placeholder="结算方式YueJie-->月结、YuE-->余额、XianFu-->现付"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="付款人 Idsys_user.id" prop="payerUserId"> <ElFormItem label="付款人 Idsys_user.id" prop="payerUserId">
<ElInput <ElInput
v-model="formData.payerUserId" v-model="formData.payerUserId"
:disabled="status === 'view'"
placeholder="付款人 Idsys_user.id"/> placeholder="付款人 Idsys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="付款人客户 Idcst_customer.id" prop="payerCustomerId"> <ElFormItem label="付款人客户 Idcst_customer.id" prop="payerCustomerId">
<ElInput <ElInput
v-model="formData.payerCustomerId" v-model="formData.payerCustomerId"
:disabled="status === 'view'"
placeholder="付款人客户 Idcst_customer.id"/> placeholder="付款人客户 Idcst_customer.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="付款方资金账户 Id" prop="payerMoneyAccount"> <ElFormItem label="付款方资金账户 Id" prop="payerMoneyAccount">
<ElInput <ElInput
v-model="formData.payerMoneyAccount" v-model="formData.payerMoneyAccount"
:disabled="status === 'view'"
placeholder="付款方资金账户 Id"/> placeholder="付款方资金账户 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="创建人 Idsys_user.id" prop="creatorId"> <ElFormItem label="创建人 Idsys_user.id" prop="creatorId">
<ElInput <ElInput
v-model="formData.creatorId" v-model="formData.creatorId"
:disabled="status === 'view'"
placeholder="创建人 Idsys_user.id"/> placeholder="创建人 Idsys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="修改人 Id sys_user.id" prop="modifierId"> <ElFormItem label="修改人 Id sys_user.id" prop="modifierId">
<ElInput <ElInput
v-model="formData.modifierId" v-model="formData.modifierId"
:disabled="status === 'view'"
placeholder="修改人 Id sys_user.id"/> placeholder="修改人 Id sys_user.id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="创建时间" prop="createTime"> <ElFormItem label="创建时间" prop="createTime">
<ElInput <ElInput
v-model="formData.createTime" v-model="formData.createTime"
:disabled="status === 'view'"
placeholder="创建时间"/> placeholder="创建时间"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="修改时间" prop="modifyTime"> <ElFormItem label="修改时间" prop="modifyTime">
<ElInput <ElInput
v-model="formData.modifyTime" v-model="formData.modifyTime"
:disabled="status === 'view'"
placeholder="修改时间"/> placeholder="修改时间"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
@ -331,7 +331,7 @@ driverId: [{ required: true, message: '请填写司机 Id', trigger: 'blur' }],
driverCustomerId: [{ required: true, message: '请填写司机所属客户 Idcst_customer.id', trigger: 'blur' }], driverCustomerId: [{ required: true, message: '请填写司机所属客户 Idcst_customer.id', trigger: 'blur' }],
driverUserId: [{ required: true, message: '请填写司机所属用户 Id', trigger: 'blur' }], driverUserId: [{ required: true, message: '请填写司机所属用户 Id', trigger: 'blur' }],
truckCustomerId: [{ required: true, message: '请填写归属客户 Idcst_customer.id', trigger: 'blur' }], truckCustomerId: [{ required: true, message: '请填写归属客户 Idcst_customer.id', trigger: 'blur' }],
truckOrgId: [{ required: true, message: '请填写归属组织', trigger: 'blur' }], truckOrgId: [ {required: true, message: '请填写归属企业', trigger: 'blur'} ],
truckId: [{ required: true, message: '请填写车辆 Id', trigger: 'blur' }], truckId: [{ required: true, message: '请填写车辆 Id', trigger: 'blur' }],
truckLicensePlate: [{ required: true, message: '请填写车牌号', trigger: 'blur' }], truckLicensePlate: [{ required: true, message: '请填写车牌号', trigger: 'blur' }],
historyTareWeight: [{ required: true, message: '请填写历史皮重', trigger: 'blur' }], historyTareWeight: [{ required: true, message: '请填写历史皮重', trigger: 'blur' }],

View File

@ -39,7 +39,7 @@ declare global {
driverUserId?: string; driverUserId?: string;
// 归属客户 Idcst_customer.id // 归属客户 Idcst_customer.id
truckCustomerId?: string; truckCustomerId?: string;
// 归属组织 // 归属企业
truckOrgId?: string; truckOrgId?: string;
// 车辆 Id // 车辆 Id
truckId?: string; truckId?: string;
@ -138,7 +138,7 @@ declare global {
driverUserId?: string; driverUserId?: string;
// 归属客户 Idcst_customer.id // 归属客户 Idcst_customer.id
truckCustomerId?: string; truckCustomerId?: string;
// 归属组织 // 归属企业
truckOrgId?: string; truckOrgId?: string;
// 车辆 Id // 车辆 Id
truckId?: string; truckId?: string;
@ -237,7 +237,7 @@ declare global {
driverUserId?: string; driverUserId?: string;
// 归属客户 Idcst_customer.id // 归属客户 Idcst_customer.id
truckCustomerId?: string; truckCustomerId?: string;
// 归属组织 // 归属企业
truckOrgId?: string; truckOrgId?: string;
// 车辆 Id // 车辆 Id
truckId?: string; truckId?: string;
@ -336,7 +336,7 @@ declare global {
driverUserId?: string; driverUserId?: string;
// 归属客户 Idcst_customer.id // 归属客户 Idcst_customer.id
truckCustomerId?: string; truckCustomerId?: string;
// 归属组织 // 归属企业
truckOrgId?: string; truckOrgId?: string;
// 车辆 Id // 车辆 Id
truckId?: string; truckId?: string;

View File

@ -7,22 +7,22 @@
<ElForm :model="dictFormData" <ElForm :model="dictFormData"
class="sys_dict-form" class="sys_dict-form"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="字典标识"> <ElFormItem label="字典标识">
<ElInput <ElInput
v-model="dictFormData.dictKey" v-model="dictFormData.dictKey"
:disabled="status === 'view'"
placeholder="字典标识"/> placeholder="字典标识"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="字典名称"> <ElFormItem label="字典名称">
<ElInput <ElInput
v-model="dictFormData.dictName" v-model="dictFormData.dictName"
:disabled="status === 'view'"
placeholder="字典名称"/> placeholder="字典名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注"> <ElFormItem label="备注">
<ElInput <ElInput
v-model="dictFormData.memo" v-model="dictFormData.memo"
:disabled="status === 'view'"
placeholder="备注"/> placeholder="备注"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>

View File

@ -7,30 +7,30 @@
<ElForm :model="dictItemFormData" <ElForm :model="dictItemFormData"
class="sys_dict_item-form" class="sys_dict_item-form"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="值"> <ElFormItem label="值">
<ElInput <ElInput
v-model="dictItemFormData.val" v-model="dictItemFormData.val"
:disabled="status === 'view'"
placeholder="值"/> placeholder="值"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="文本"> <ElFormItem label="文本">
<ElInput <ElInput
v-model="dictItemFormData.txt" v-model="dictItemFormData.txt"
:disabled="status === 'view'"
placeholder="文本"/> placeholder="文本"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="排序"> <ElFormItem label="排序">
<ElInputNumber <ElInputNumber
v-model="dictItemFormData.sort" v-model="dictItemFormData.sort"
:disabled="status === 'view'"
:min="1" :min="1"
placeholder="排序" placeholder="排序"
style="width: 100%"/> style="width: 100%"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注"> <ElFormItem label="备注">
<ElInput <ElInput
v-model="dictItemFormData.memo" v-model="dictItemFormData.memo"
:disabled="status === 'view'"
placeholder="备注"/> placeholder="备注"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>

View File

@ -11,10 +11,10 @@
class="form-panel" class="form-panel"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="请求方式" prop="requestMethod"> <ElFormItem label="请求方式" prop="requestMethod">
<ElSelect <ElSelect
v-model="formData.requestMethod" v-model="formData.requestMethod"
:disabled="status === 'view'"
placeholder="请求方式"> placeholder="请求方式">
<ElOption label="GET 请求" value="GET"/> <ElOption label="GET 请求" value="GET"/>
<ElOption label="POST 请求" value="POST"/> <ElOption label="POST 请求" value="POST"/>
@ -22,22 +22,22 @@
<ElOption label="DELETE 请求" value="DELETE"/> <ElOption label="DELETE 请求" value="DELETE"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="路由前缀" prop="routingPath"> <ElFormItem label="路由前缀" prop="routingPath">
<ElInput <ElInput
v-model="formData.routingPath" v-model="formData.routingPath"
:disabled="status === 'view'"
placeholder="以 / 开头 或 为空"/> placeholder="以 / 开头 或 为空"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="端点地址" prop="endpointPath"> <ElFormItem label="端点地址" prop="endpointPath">
<ElInput <ElInput
v-model="formData.endpointPath" v-model="formData.endpointPath"
:disabled="status === 'view'"
placeholder="以 / 开头"/> placeholder="以 / 开头"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="访问模式" prop="accessModel"> <ElFormItem label="访问模式" prop="accessModel">
<ElSelect <ElSelect
v-model="formData.accessModel" v-model="formData.accessModel"
:disabled="status === 'view'"
placeholder="访问模式"> placeholder="访问模式">
<ElOption label="允许匿名访问" value="Anonymous"/> <ElOption label="允许匿名访问" value="Anonymous"/>
<ElOption label="允许已登录用户访问" value="Logined"/> <ElOption label="允许已登录用户访问" value="Logined"/>
@ -45,10 +45,10 @@
<ElOption label="禁止访问" value="Forbidden"/> <ElOption label="禁止访问" value="Forbidden"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注" prop="memo"> <ElFormItem label="备注" prop="memo">
<ElInput <ElInput
v-model="formData.memo" v-model="formData.memo"
:disabled="status === 'view'"
placeholder="备注"/> placeholder="备注"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>

View File

@ -11,7 +11,7 @@
ref="codeForm" ref="codeForm"
:rules="rules" :rules="rules"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="表名称"> <ElFormItem label="表名称">
<ElTooltip <ElTooltip
:content="currentTable.tableComment" :content="currentTable.tableComment"
placement="top"> placement="top">
@ -21,7 +21,7 @@
/> />
</ElTooltip> </ElTooltip>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="前端/后端" prop="lang"> <ElFormItem label="前端/后端" prop="lang">
<ElSelect <ElSelect
v-model="formData.lang" v-model="formData.lang"
placeholder="前端/后端" placeholder="前端/后端"
@ -34,7 +34,7 @@
value="java"/> value="java"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="表前缀" prop="data.prefix"> <ElFormItem label="表前缀" prop="data.prefix">
<ElInput <ElInput
v-model="formData.data.prefix" v-model="formData.data.prefix"
placeholder="表前缀"/> placeholder="表前缀"/>

View File

@ -20,7 +20,8 @@
<script lang="ts" setup> <script lang="ts" setup>
import CodePreview from '@/pages/sys/gen/db-table/CodePreview.vue' import CodePreview from '@/pages/sys/gen/db-table/CodePreview.vue'
import DbTableApi from '@/pages/sys/gen/db-table/db-table-api.ts' import DbTableApi from '@/pages/sys/gen/db-table/db-table-api.ts'
import FormPage, { type ActionColumnType } from '@/components/page/FormPage.vue' import FormPage from '@/components/page/FormPage.vue'
import type { ActionColumnType } from '@/components/page/a-page-type.ts'
const codePreviewIns = useTemplateRef<InstanceType<typeof CodePreview>>('codePreview') const codePreviewIns = useTemplateRef<InstanceType<typeof CodePreview>>('codePreview')

View File

@ -7,16 +7,16 @@
<ElForm :model="tplFormData" <ElForm :model="tplFormData"
class="sys_tpl-form" class="sys_tpl-form"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="模板名称"> <ElFormItem label="模板名称">
<ElInput <ElInput
v-model="tplFormData.tplName" v-model="tplFormData.tplName"
:disabled="status === 'view'"
placeholder="模板名称"/> placeholder="模板名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="前端/后端"> <ElFormItem label="前端/后端">
<ElSelect <ElSelect
v-model="tplFormData.lang" v-model="tplFormData.lang"
:disabled="status === 'view'"
placeholder="前端/后端" placeholder="前端/后端"
> >
<ElOption <ElOption
@ -27,31 +27,31 @@
value="java"/> value="java"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="模板内容"> <ElFormItem label="模板内容">
<ElInput <ElInput
v-model="tplFormData.tpl.content" v-model="tplFormData.tpl.content"
:spellcheck="false" :spellcheck="false"
:disabled="status === 'view'"
placeholder="模板内容" placeholder="模板内容"
resize="none" resize="none"
type="textarea"/> type="textarea"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="文件路径"> <ElFormItem label="文件路径">
<ElInput <ElInput
:spellcheck="false" :spellcheck="false"
v-model="tplFormData.tpl.dir" v-model="tplFormData.tpl.dir"
:disabled="status === 'view'"
placeholder="文件路径" placeholder="文件路径"
resize="none" resize="none"
type="textarea"/> type="textarea"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="文件名称"> <ElFormItem label="文件名称">
<ElInput <ElInput
:spellcheck="false" :spellcheck="false"
v-model="tplFormData.tpl.filename" v-model="tplFormData.tpl.filename"
:disabled="status === 'view'"
placeholder="文件名称" placeholder="文件名称"
resize="none" resize="none"
type="textarea"/> type="textarea"/>

View File

@ -3,36 +3,36 @@
:close-on-click-modal="false" :close-on-click-modal="false"
destroy-on-close width="25vw" @close="dialogCloseHandler"> destroy-on-close width="25vw" @close="dialogCloseHandler">
<ElForm :model="menuForm" class="menu-form" label-width="auto"> <ElForm :model="menuForm" class="menu-form" label-width="auto">
<ElFormItem label-width="90" label="上级"> <ElFormItem label="上级">
<ElTreeSelect v-model="menuForm.pid" :data="menuTreeDataSource" :default-expanded-keys="['0']" :disabled="status === 'view'" :render-after-expand="false" check-strictly placeholder="选择上级菜单"/> <ElTreeSelect v-model="menuForm.pid" :data="menuTreeDataSource" :default-expanded-keys="['0']" :render-after-expand="false" check-strictly placeholder="选择上级菜单"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="客户端" prop="clients"> <ElFormItem label="客户端" prop="clients">
<ElCheckboxGroup v-model="menuForm.clients"> <ElCheckboxGroup v-model="menuForm.clients">
<ElCheckbox v-for="client in ClientUtil.clients" :key="client.val" :label="client.txt" :value="client.val"/> <ElCheckbox v-for="client in ClientUtil.clients" :key="client.val" :label="client.txt" :value="client.val"/>
</ElCheckboxGroup> </ElCheckboxGroup>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="类型"> <ElFormItem label="类型">
<ElSelect v-model="menuForm.menuCategory" :data="menuCategoryData" :disabled="status === 'view'" placeholder="选择类型"> <ElSelect v-model="menuForm.menuCategory" :data="menuCategoryData" placeholder="选择类型">
<ElOption v-for="menuCategory in menuCategoryData" :key="menuCategory.key" :label="menuCategory.label" :value="menuCategory.key"/> <ElOption v-for="menuCategory in menuCategoryData" :key="menuCategory.key" :label="menuCategory.label" :value="menuCategory.key"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="名称"> <ElFormItem label="名称">
<ElInput v-model="menuForm.title" :disabled="status === 'view'" placeholder="名称"/> <ElInput v-model="menuForm.title" placeholder="名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="menuForm.menuCategory === MenuCategory.Page || menuForm.menuCategory === MenuCategory.SubPage" :disabled="status === 'view'" label="路由名称"> <ElFormItem v-if="menuForm.menuCategory === MenuCategory.Page || menuForm.menuCategory === MenuCategory.SubPage" label="路由名称">
<ElInput v-model="menuForm.routeName" :min="0" placeholder="路由名称"/> <ElInput v-model="menuForm.routeName" :min="0" placeholder="路由名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="menuForm.menuCategory === MenuCategory.Page || menuForm.menuCategory === MenuCategory.SubPage" :disabled="status === 'view'" label="路由地址"> <ElFormItem v-if="menuForm.menuCategory === MenuCategory.Page || menuForm.menuCategory === MenuCategory.SubPage" label="路由地址">
<ElInput v-model="menuForm.routePath" :min="0" placeholder="路由地址"/> <ElInput v-model="menuForm.routePath" :min="0" placeholder="路由地址"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="编码"> <ElFormItem label="编码">
<ElInput v-model="menuForm.sn" :disabled="status === 'view'" :min="0" placeholder="编码"/> <ElInput v-model="menuForm.sn" :min="0" placeholder="编码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="图标"> <ElFormItem label="图标">
<ElDropdown closable header="图标列表" placement="bottom" style="width: 100%" trigger="click"> <ElDropdown closable header="图标列表" placement="bottom" style="width: 100%" trigger="click">
<ElInput v-model="menuForm.iconName" placeholder="选择图标" :disabled="status === 'view'" readonly> <ElInput v-model="menuForm.iconName" placeholder="选择图标" readonly>
<template #suffix> <template #suffix>
<AIcon :name="menuForm.icon!"/> <AIcon :name="menuForm.icon!"/>
</template> </template>
@ -62,8 +62,8 @@
</template> </template>
</ElDropdown> </ElDropdown>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="排序"> <ElFormItem label="排序">
<ElInputNumber v-model="menuForm.sort" :disabled="status === 'view'" :min="0" placeholder="排序" style="width: 100%"/> <ElInputNumber v-model="menuForm.sort" :min="0" placeholder="排序" style="width: 100%"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
<template #footer> <template #footer>

View File

@ -7,22 +7,22 @@
<ElForm :model="roleFormData" <ElForm :model="roleFormData"
class="sys_role-form" class="sys_role-form"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="角色代码"> <ElFormItem label="角色代码">
<ElInput <ElInput
v-model="roleFormData.roleCode" v-model="roleFormData.roleCode"
:disabled="status === 'view'"
placeholder="角色代码"/> placeholder="角色代码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="角色名称"> <ElFormItem label="角色名称">
<ElInput <ElInput
v-model="roleFormData.roleName" v-model="roleFormData.roleName"
:disabled="status === 'view'"
placeholder="角色名称"/> placeholder="角色名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注"> <ElFormItem label="备注">
<ElInput <ElInput
v-model="roleFormData.memo" v-model="roleFormData.memo"
:disabled="status === 'view'"
placeholder="备注"/> placeholder="备注"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>

View File

@ -3,37 +3,37 @@
:close-on-click-modal="false" :close-on-click-modal="false"
destroy-on-close width="25vw" @close="dialogCloseHandler"> destroy-on-close width="25vw" @close="dialogCloseHandler">
<ElForm :model="taskFormData" class="sys_task-form" label-width="auto"> <ElForm :model="taskFormData" class="sys_task-form" label-width="auto">
<ElFormItem label-width="90" label="任务名称"> <ElFormItem label="任务名称">
<ElInput v-model="taskFormData.taskName" :disabled="status === 'view'" placeholder="任务名称"/> <ElInput v-model="taskFormData.taskName" placeholder="任务名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="任务执行函数"> <ElFormItem label="任务执行函数">
<ElSelect v-model="taskFormData.fn" :disabled="status === 'view'" placeholder="请选择任务执行函数"> <ElSelect v-model="taskFormData.fn" placeholder="请选择任务执行函数">
<ElOption v-for="item in fnList" :key="item.fn" :label="item.fn" :value="item.fn!"/> <ElOption v-for="item in fnList" :key="item.fn" :label="item.fn" :value="item.fn!"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="日志等级"> <ElFormItem label="日志等级">
<ElSelect v-model="taskFormData.logLevel" placeholder="请选择日志等级"> <ElSelect v-model="taskFormData.logLevel" placeholder="请选择日志等级">
<ElOption v-for="item in logLevelList" :key="item.value" :label="item.label" :value="item.value"/> <ElOption v-for="item in logLevelList" :key="item.value" :label="item.label" :value="item.value"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="调度方式"> <ElFormItem label="调度方式">
<ElSelect v-model="taskFormData.scheduleType" placeholder="请选择调度方式" @change="scheduleTypeChange"> <ElSelect v-model="taskFormData.scheduleType" placeholder="请选择调度方式" @change="scheduleTypeChange">
<ElOption v-for="item in scheduleTypeList" :key="item.value" :label="item.label" :value="item.value"/> <ElOption v-for="item in scheduleTypeList" :key="item.value" :label="item.label" :value="item.value"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="taskFormData.scheduleType === 'Cron'" label="调度配置"> <ElFormItem v-if="taskFormData.scheduleType === 'Cron'" label="调度配置">
<Cron v-model="taskFormData.scheduleConf" :disabled="status === 'view'" placeholder="调度配置"/> <Cron v-model="taskFormData.scheduleConf" placeholder="调度配置"/>
</ElFormItem> </ElFormItem>
<ElFormItem v-else-if="taskFormData.scheduleType === 'Fixed'" label="调度配置"> <ElFormItem v-else-if="taskFormData.scheduleType === 'Fixed'" label="调度配置">
<ElInput v-model="taskFormData.scheduleConf" :disabled="status === 'view'" placeholder="调度配置"> <ElInput v-model="taskFormData.scheduleConf" placeholder="调度配置">
<template #suffix>周期</template> <template #suffix>周期</template>
</ElInput> </ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="是否禁用"> <ElFormItem label="是否禁用">
<ElSwitch v-model="taskFormData.disabled" active-text="" inactive-text=""/> <ElSwitch v-model="taskFormData.disabled" active-text="" inactive-text=""/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注"> <ElFormItem label="备注">
<ElInput v-model="taskFormData.memo" :disabled="status === 'view'" placeholder="备注"/> <ElInput v-model="taskFormData.memo" placeholder="备注"/>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
<template #footer> <template #footer>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ElForm v-show="showSearchForm" inline @submit.prevent="paging"> <ElForm v-show="showSearchForm" inline @submit.prevent="paging">
<ElFormItem label-width="90" label="日志时间"> <ElFormItem label="日志时间">
<ElDatePicker <ElDatePicker
v-model="searchForm.logTime" v-model="searchForm.logTime"
:shortcuts="shortcuts" :shortcuts="shortcuts"
@ -12,7 +12,7 @@
unlink-panels unlink-panels
/> />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="日志等级"> <ElFormItem label="日志等级">
<ElSelect v-model="searchForm.logLevel" placeholder="请选择日志等级" style="width: 150px;"> <ElSelect v-model="searchForm.logLevel" placeholder="请选择日志等级" style="width: 150px;">
<ElOption v-for="item in logLevelList" :key="item.value" :label="item.label" :value="item.value"/> <ElOption v-for="item in logLevelList" :key="item.value" :label="item.label" :value="item.value"/>
</ElSelect> </ElSelect>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ElForm v-show="showSearchForm" inline @submit.prevent="paging"> <ElForm v-show="showSearchForm" inline @submit.prevent="paging">
<ElFormItem label-width="90" label="调度时间"> <ElFormItem label="调度时间">
<ElDatePicker <ElDatePicker
v-model="searchForm.scheduleTime" v-model="searchForm.scheduleTime"
:shortcuts="shortcuts" :shortcuts="shortcuts"
@ -12,17 +12,17 @@
unlink-panels unlink-panels
/> />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="调度方式"> <ElFormItem label="调度方式">
<ElSelect v-model="searchForm.scheduleType" clearable placeholder="请选择调度方式" style="width: 150px" @clear="paging"> <ElSelect v-model="searchForm.scheduleType" clearable placeholder="请选择调度方式" style="width: 150px" @clear="paging">
<ElOption v-for="item in scheduleTypeList" :key="item.value" :label="item.label" :value="item.value"/> <ElOption v-for="item in scheduleTypeList" :key="item.value" :label="item.label" :value="item.value"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="任务状态"> <ElFormItem label="任务状态">
<ElSelect v-model="searchForm.taskStatus" placeholder="请选择任务状态" style="width: 150px;"> <ElSelect v-model="searchForm.taskStatus" placeholder="请选择任务状态" style="width: 150px;">
<ElOption v-for="item in status" :key="item.value" :label="item.label" :value="item.value"/> <ElOption v-for="item in status" :key="item.value" :label="item.label" :value="item.value"/>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="手动触发"> <ElFormItem label="手动触发">
<ElCheckbox <ElCheckbox
v-model="searchForm.manually" v-model="searchForm.manually"
placeholder="手动触发"/> placeholder="手动触发"/>

View File

@ -7,17 +7,17 @@
<ElForm :model="userFormData" <ElForm :model="userFormData"
class="sys_user-form" class="sys_user-form"
label-width="auto"> label-width="auto">
<ElFormItem label-width="90" label="姓名"> <ElFormItem label="姓名">
<ElInput <ElInput
:readonly="userFormData.id=='1'" :readonly="userFormData.id=='1'"
v-model="userFormData.nickname" v-model="userFormData.nickname"
:disabled="status === 'view'"
placeholder="姓名"/> placeholder="姓名"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="头像"> <ElFormItem label="头像">
<Uploader <Uploader
v-model:file="userFormData.avatar" v-model:file="userFormData.avatar"
:disabled="status === 'view'"
:upload-props="{ :upload-props="{
accept: 'image/*', accept: 'image/*',
listType:'picture' listType:'picture'
@ -25,10 +25,10 @@
<ElButton>点击上传头像</ElButton> <ElButton>点击上传头像</ElButton>
</Uploader> </Uploader>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="联系电话"> <ElFormItem label="联系电话">
<ElInput <ElInput
v-model="userFormData.phone" v-model="userFormData.phone"
:disabled="status === 'view'"
placeholder="联系电话"/> placeholder="联系电话"/>
</ElFormItem> </ElFormItem>
<ElFormItem v-if="status === 'add'" label="用户名"> <ElFormItem v-if="status === 'add'" label="用户名">

View File

@ -33,6 +33,23 @@
<ElInput v-model="searchForm.goodsName" placeholder="产品名称"/> <ElInput v-model="searchForm.goodsName" placeholder="产品名称"/>
</ElFormItem> </ElFormItem>
</template> </template>
<template #simpleSearchFormItem="{ searchForm }">
<ElFormItem>
<ElInput v-model="searchForm.sn" placeholder="编号"/>
</ElFormItem>
<ElFormItem>
<ElInput v-model="searchForm.warehouseId" placeholder="仓库"/>
</ElFormItem>
<ElFormItem>
<ElInput v-model="searchForm.location" placeholder="存放位置"/>
</ElFormItem>
<ElFormItem>
<ElInput v-model="searchForm.inTime" placeholder="入库时间"/>
</ElFormItem>
<ElFormItem>
<ElInput v-model="searchForm.goodsName" placeholder="产品名称"/>
</ElFormItem>
</template>
<template #columns> <template #columns>
<ElTableColumn label="编号" prop="sn"/> <ElTableColumn label="编号" prop="sn"/>
<ElTableColumn label="仓库" prop="warehouseName"/> <ElTableColumn label="仓库" prop="warehouseName"/>
@ -48,7 +65,7 @@
<ElTableColumn label="创建时间" prop="createTime" width="170px"/> <ElTableColumn label="创建时间" prop="createTime" width="170px"/>
<ElTableColumn label="修改时间" prop="modifyTime" width="170px"/> <ElTableColumn label="修改时间" prop="modifyTime" width="170px"/>
</template> </template>
<InOrderForm ref="inOrderForm" @edit-succ="research"/> <InOrderForm ref="inOrderForm" :research="research"/>
</FormPage> </FormPage>
</template> </template>

View File

@ -1,225 +1,130 @@
<template> <template>
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler"> <AFormPanel
<ElForm :model="formData" :rules="rules" ref="inOrderForm" class="form-panel" label-width="auto"> ref="formPanel"
<!-- <ElFormItem label-width="90" label="编号" prop="sn"> :details-loader="detailsLoader"
<ElInput :do-submit="doSubmit"
v-model="formData.sn" :rules="rules"
:disabled="status === 'view'" :title="status === 'add' ? '新建站点' : '修改站点'"
placeholder="编号"/> >
</ElFormItem> --> <template #default="{formData}">
<ElFormItem label-width="90" label="责任人" prop="responsibleId"> <div class="form-items">
<!-- <ElInput <ElFormItem label="责任人" prop="responsibleId">
v-model="formData.responsibleId"
:disabled="status === 'view'"
placeholder="责任人"/> -->
<ASelect labelKey="nickname" :tableColumn="userColumn" v-model="formData.responsibleId" :api="UserApi.paging" :disabled="status === 'view'" placeholder="请选择负责人" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="仓库" prop="warehouseId"> <ElFormItem label="仓库" prop="warehouseId">
<!-- <ElInput
v-model="formData.warehouseId"
:disabled="status === 'view'"
placeholder="仓库"/> -->
<ASelect labelKey="warehouseName" v-model="formData.warehouseId" @change="warehouseChange" :tableColumn="warehouseColumn" :api="WarehouseApi.paging" :disabled="status === 'view'" placeholder="选择仓库" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="存放位置" prop="location"> <ElFormItem label="存放位置" prop="location">
<ElInput readonly v-model="formData.location" :disabled="status === 'view'" placeholder="存放位置" /> <ElInput v-model="formData.location" placeholder="存放位置" readonly/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="入库时间" prop="inTime"> <ElFormItem label="入库时间" prop="inTime">
<ElDatePicker v-model="formData.inTime" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择入库日期" /> <ElDatePicker v-model="formData.inTime" format="YYYY-MM-DD" placeholder="请选择入库日期" type="date" value-format="YYYY-MM-DD"/>
<!-- <ElInput v-model="formData.inTime" :disabled="status === 'view'" placeholder="入库时间" /> --> <!-- <ElInput v-model="formData.inTime" placeholder="入库时间" /> -->
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="采购单" prop="orderId"> <ElFormItem label="采购单" prop="orderId">
<ASelect labelKey="sn" @change="orderChange" :tableColumn="orderColumn" v-model="formData.orderId" :api="PurchaseOrderApi.paging" :disabled="status === 'view'" placeholder="请选择负责人" />
<!-- <ElInput v-model="formData.orderId" :disabled="status === 'view'" placeholder="采购单 Idwh_purchase_order.id" /> -->
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="采购单单号" prop="orderSn"> <ElFormItem label="采购单单号" prop="orderSn">
<ElInput v-model="formData.orderSn" readonly :disabled="status === 'view'" placeholder="采购单单号wh_purchase_order.sn" /> <ElInput v-model="formData.orderSn" placeholder="采购单单号wh_purchase_order.sn" readonly/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="产品分类 Id" prop="goodsCategoryId"> <!-- <ElFormItem label="产品分类 Id" prop="goodsCategoryId">
<ElInput v-model="formData.goodsCategoryId" :disabled="status === 'view'" placeholder="产品分类 Id" /> <ElInput v-model="formData.goodsCategoryId" placeholder="产品分类 Id" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="分类名称" prop="goodsCategoryName"> <ElFormItem label="分类名称" prop="goodsCategoryName">
<ElInput v-model="formData.goodsCategoryName" readonly :disabled="status === 'view'" placeholder="分类名称" /> <ElInput v-model="formData.goodsCategoryName" placeholder="分类名称" readonly/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="产品名称" prop="goodsName"> <ElFormItem label="产品名称" prop="goodsName">
<ElInput v-model="formData.goodsName" readonly :disabled="status === 'view'" placeholder="产品名称" /> <ElInput v-model="formData.goodsName" placeholder="产品名称" readonly/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="产品编码" prop="goodSn"> <!-- <ElFormItem label="产品编码" prop="goodSn">
<ElInput v-model="formData.goodSn" readonly :disabled="status === 'view'" placeholder="产品编码" /> <ElInput v-model="formData.goodSn" readonly placeholder="产品编码" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="数量" prop="quantity"> <ElFormItem label="数量" prop="quantity">
<ElInput v-model="formData.quantity" readonly :disabled="status === 'view'" placeholder="数量" /> <ElInput v-model="formData.quantity" placeholder="数量" readonly/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="计量单位字典代码unit" prop="unit"> <!-- <ElFormItem label="计量单位字典代码unit" prop="unit">
<ElInput v-model="formData.unit" :disabled="status === 'view'" placeholder="计量单位字典代码unit" /> <ElInput v-model="formData.unit" placeholder="计量单位字典代码unit" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="备注" prop="memo"> <ElFormItem label="备注" prop="memo">
<ElInput v-model="formData.memo" readonly :disabled="status === 'view'" placeholder="备注" /> <ElInput v-model="formData.memo" placeholder="备注" readonly/>
</ElFormItem> </ElFormItem>
</ElForm> </div>
<template #footer>
<ElButton @click="showDialog = false">{{ status === "view" ? "关闭" : "取消" }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import InOrderApi from '@/pages/wh/in-order/in-order-api.ts' import InOrderApi from '@/pages/wh/in-order/in-order-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import Utils from '@/common/utils' import type { ComponentExposed } from 'vue-component-type-helpers'
import { import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
ElMessage,
type FormInstance,
type FormRules,
} from 'element-plus'
import ASelect from '@/components/a-select/ASelect.vue'
import UserApi from '@/pages/sys/user/user-api.ts'
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
import PurchaseOrderApi from '@/pages/wh/purchase-order/purchase-order-api.ts'
const emits = defineEmits(["editSucc"]); const props = withDefaults(defineProps<{
const showDialog = ref(false); research?: () => void
const submiting = ref(false); }>(), {
const status = ref<"add" | "view" | "modify">("add"); research: () => {
},
const inOrderFormIns = useTemplateRef<FormInstance>("inOrderForm"); })
const formData = Utils.resetAble(reactive<InOrderTypes.SearchInOrderResult>({}));
const rules = reactive<FormRules<InOrderTypes.SearchInOrderResult>>({ const rules = reactive<FormRules<InOrderTypes.SearchInOrderResult>>({
id: [{ required: true, message: "请填写Id", trigger: "blur" }], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
sn: [{ required: true, message: "请填写编号", trigger: "blur" }], sn: [ {required: true, message: '请填写编号', trigger: 'blur'} ],
responsibleId: [{ required: true, message: "请填写责任人", trigger: "blur" }], responsibleId: [ {required: true, message: '请填写责任人', trigger: 'blur'} ],
warehouseId: [{ required: true, message: "请填写仓库", trigger: "blur" }], warehouseId: [ {required: true, message: '请填写仓库', trigger: 'blur'} ],
location: [{ required: true, message: "请填写存放位置", trigger: "blur" }], location: [ {required: true, message: '请填写存放位置', trigger: 'blur'} ],
inTime: [{ required: true, message: "请填写入库时间", trigger: "blur" }], inTime: [ {required: true, message: '请填写入库时间', trigger: 'blur'} ],
orderId: [{ required: true, message: "请填写采购单", trigger: "blur" }], orderId: [ {required: true, message: '请填写采购单', trigger: 'blur'} ],
orderSn: [{ required: true, message: "请填写采购单单号", trigger: "blur" }], orderSn: [ {required: true, message: '请填写采购单单号', trigger: 'blur'} ],
goodsCategoryId: [{ required: true, message: "请填写产品分类 Id", trigger: "blur" }], goodsCategoryId: [ {required: true, message: '请填写产品分类 Id', trigger: 'blur'} ],
goodsCategoryName: [{ required: true, message: "请填写分类名称", trigger: "blur" }], goodsCategoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
goodsId: [{ required: true, message: "请填写产品 Id", trigger: "blur" }], goodsId: [ {required: true, message: '请填写产品 Id', trigger: 'blur'} ],
goodsName: [{ required: true, message: "请填写产品名称", trigger: "blur" }], goodsName: [ {required: true, message: '请填写产品名称', trigger: 'blur'} ],
goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ], goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
quantity: [{ required: true, message: "请填写数量", trigger: "blur" }], quantity: [ {required: true, message: '请填写数量', trigger: 'blur'} ],
unit: [{ required: true, message: "请填写计量单位字典代码unit", trigger: "blur" }], unit: [ {required: true, message: '请填写计量单位字典代码unit', trigger: 'blur'} ],
memo: [{ required: true, message: "请填写备注", trigger: "blur" }], memo: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
creatorId: [{ required: true, message: "请填写创建人 Id sys_user.id", trigger: "blur" }], creatorId: [ {required: true, message: '请填写创建人 Id sys_user.id', trigger: 'blur'} ],
modifierId: [{ required: true, message: "请填写修改人 Id sys_user.id", trigger: "blur" }], modifierId: [ {required: true, message: '请填写修改人 Id sys_user.id', trigger: 'blur'} ],
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }], createTime: [ {required: true, message: '请填写创建时间', trigger: 'blur'} ],
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }], modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
deleted: [{ required: true, message: "请填写是否删除; 0-->未删除、1-->已删除", trigger: "blur" }], deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
});
const userColumn = [
{
label: "姓名",
prop: "nickname",
},
{
label: "联系电话",
prop: "phone",
},
{
label: "用户名",
prop: "account.username",
},
];
const orderColumn = [
{
label: "编号",
prop: "sn",
},
{
label: "产品名称",
prop: "goodsName",
},
{
label: "采购日期",
prop: "purchaseDate ",
},
{
label: "数量",
prop: "quantity",
},
];
const warehouseColumn = [
{
label: "名称",
prop: "warehouseName",
},
{
label: "位置",
prop: "location",
},
];
function warehouseChange(e: any) {
formData.location = e.location;
}
function orderChange(e: any) {
console.log(e, "ee");
formData.orderSn = e.sn;
formData.goodsCategoryId = e.goodsCategoryId;
formData.goodsCategoryName = e.goodsCategoryName;
formData.goodsName = e.goodsName;
formData.goodSn = e.goodSn;
formData.goodsId = e.goodsId;
formData.quantity = e.quantity;
formData.unit = e.unit;
}
function dialogCloseHandler() {
formData.$reset();
}
function submitHandler() {
if (status.value === "view") return;
submiting.value = true;
if (formData.id != null) {
FormUtil.submit(inOrderFormIns, () => InOrderApi.modify(formData))
.then(() => {
ElMessage.success("修改成功");
emits("editSucc");
showDialog.value = false;
}) })
.finally(() => { const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
submiting.value = false;
}); const status = ref<'add' | 'modify'>('add')
function detailsLoader(id?: string) {
if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else { } else {
FormUtil.submit(inOrderFormIns, () => InOrderApi.add(formData)) status.value = 'modify'
.then(() => { return InOrderApi
ElMessage.success("添加成功"); .detail(id!)
emits("editSucc"); .then(res => res.data)
showDialog.value = false; }
}) }
.finally(() => {
submiting.value = false; function doSubmit(data: InOrderTypes.SearchInOrderResult) {
}); if (status.value === 'add') {
return InOrderApi.add(data)
.then(props.research)
} else {
return InOrderApi.modify(data)
.then(props.research)
} }
} }
defineExpose({ defineExpose({
open(data: InOrderTypes.SearchInOrderResult = {}) { open(data?: InOrderTypes.SearchInOrderResult) {
showDialog.value = true; formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) {
status.value = "modify";
InOrderApi.detail(data.id!).then((res) => {
formData.$reset(res.data);
});
} else {
status.value = "add";
formData.$reset(data);
}
}, },
}); })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -45,6 +45,23 @@
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/> <ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/>
</ElFormItem> </ElFormItem>
</template> </template>
<template #simpleSearchFormItem="{ searchForm }">
<ElFormItem label="存放位置">
<ElInput v-model="searchForm.location" placeholder="存放位置"/>
</ElFormItem>
<ElFormItem label="当前库存数量">
<ElInput v-model="searchForm.stockQuantity" placeholder="当前库存数量"/>
</ElFormItem>
<ElFormItem label="锁定数量">
<ElInput v-model="searchForm.lockQuantity" placeholder="锁定数量"/>
</ElFormItem>
<ElFormItem label="总量">
<ElInput v-model="searchForm.totalQuantity" placeholder="总量"/>
</ElFormItem>
<ElFormItem label="剩余量">
<ElInput v-model="searchForm.remainingQuantity" placeholder="剩余量"/>
</ElFormItem>
</template>
<template #columns> <template #columns>
<ElTableColumn label="仓库" prop="warehouseName"/> <ElTableColumn label="仓库" prop="warehouseName"/>
<ElTableColumn label="产品" prop="goodsName"/> <ElTableColumn label="产品" prop="goodsName"/>
@ -57,7 +74,7 @@
<ElTableColumn label="创建时间" prop="createTime" width="180"/> <ElTableColumn label="创建时间" prop="createTime" width="180"/>
<ElTableColumn label="修改时间" prop="modifyTime" width="180"/> <ElTableColumn label="修改时间" prop="modifyTime" width="180"/>
</template> </template>
<InventoryForm ref="inventoryForm" @edit-succ="research"/> <InventoryForm ref="inventoryForm" :research="research"/>
</FormPage> </FormPage>
</template> </template>

View File

@ -1,100 +1,68 @@
<template> <template>
<ElDialog v-model="showDialog" <AFormPanel
:close-on-click-modal="false" ref="formPanel"
destroy-on-close :details-loader="detailsLoader"
width="fit-content" :do-submit="doSubmit"
@close="dialogCloseHandler">
<ElForm :model="formData"
:rules="rules" :rules="rules"
ref="inventoryForm" :title="status === 'add' ? '新建项目' : '修改项目'"
class="form-panel" >
label-width="auto"> <template #default="{formData}">
<!-- <ElFormItem label-width="90" label="Id" prop="id"> <div class="form-items">
<ElInput <ElFormItem label="仓库" prop="warehouseId">
v-model="formData.id"
:disabled="status === 'view'"
placeholder="Id"/>
</ElFormItem> -->
<ElFormItem label-width="90" label="仓库" prop="warehouseId">
<ASelect labelKey="warehouseName" v-model="formData.warehouseId" :tableColumn="warehouseColumn" :api="WarehouseApi.paging" :disabled="status === 'view'" placeholder="选择仓库" />
<!-- <ElInput
v-model="formData.warehouseId"
:disabled="status === 'view'"
placeholder="仓库 Id"/> -->
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="产品" prop="goodsId"> <ElFormItem label="产品" prop="goodsId">
<ASelect labelKey="goodsName" v-model="formData.goodsId" :tableColumn="goodColumn" @change="goodsChange" :api="GoodsApi.paging" :disabled="status === 'view'" placeholder="选择产品" />
<!-- <ElInput v-model="formData.goodsId" :disabled="status === 'view'" placeholder="产品 Id" /> -->
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="存放位置" prop="location"> <ElFormItem label="存放位置" prop="location">
<ElInput <ElInput
v-model="formData.location" v-model="formData.location"
:disabled="status === 'view'"
placeholder="存放位置"/> placeholder="存放位置"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="当前库存数量" prop="stockQuantity"> <ElFormItem label="当前库存数量" prop="stockQuantity">
<ElInput <ElInput
v-model="formData.stockQuantity" v-model="formData.stockQuantity"
:disabled="status === 'view'"
placeholder="当前库存数量"/> placeholder="当前库存数量"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="锁定数量" prop="lockQuantity"> <ElFormItem label="锁定数量" prop="lockQuantity">
<ElInput <ElInput
v-model="formData.lockQuantity" v-model="formData.lockQuantity"
:disabled="status === 'view'"
placeholder="锁定数量"/> placeholder="锁定数量"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="总量" prop="totalQuantity"> <ElFormItem label="总量" prop="totalQuantity">
<ElInput <ElInput
v-model="formData.totalQuantity" v-model="formData.totalQuantity"
:disabled="status === 'view'"
placeholder="总量"/> placeholder="总量"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="剩余量" prop="remainingQuantity"> <ElFormItem label="剩余量" prop="remainingQuantity">
<ElInput <ElInput
v-model="formData.remainingQuantity" v-model="formData.remainingQuantity"
:disabled="status === 'view'"
placeholder="剩余量"/> placeholder="剩余量"/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="计量单位" prop="unit"> </div>
<ElInput
v-model="formData.unit"
:disabled="status === 'view'"
placeholder="计量单位"/>
</ElFormItem> -->
</ElForm>
<template #footer>
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import InventoryApi from '@/pages/wh/inventory/inventory-api.ts' import InventoryApi from '@/pages/wh/inventory/inventory-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import Utils from '@/common/utils' import type { ComponentExposed } from 'vue-component-type-helpers'
import { import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
ElMessage,
type FormInstance,
type FormRules,
} from 'element-plus'
import ASelect from "@/components/a-select/ASelect.vue";
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
import GoodsApi from "@/pages/gds/goods/goods-api.ts";
const emits = defineEmits(['editSucc']) const props = withDefaults(defineProps<{
const showDialog = ref(false) research?: () => void
const submiting = ref(false) }>(), {
const status = ref<'add' | 'view' | 'modify'>('add') research: () => {
},
})
const inventoryFormIns = useTemplateRef<FormInstance>('inventoryForm') const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const status = ref<'add' | 'modify'>('add')
const formData = Utils.resetAble(reactive<InventoryTypes.SearchInventoryResult>({}))
const rules = reactive<FormRules<InventoryTypes.SearchInventoryResult>>({ const rules = reactive<FormRules<InventoryTypes.SearchInventoryResult>>({
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
warehouseId: [ {required: true, message: '请填写仓库 Id', trigger: 'blur'} ], warehouseId: [ {required: true, message: '请填写仓库 Id', trigger: 'blur'} ],
@ -112,83 +80,41 @@ modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur'
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ], deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
}) })
function dialogCloseHandler() { function detailsLoader(id?: string) {
formData.$reset() if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else {
status.value = 'modify'
return InventoryApi
.detail(id!)
.then(res => res.data)
}
} }
const warehouseColumn = [ function doSubmit(data: InventoryTypes.SearchInventoryResult) {
{ if (status.value === 'add') {
label: "名称", return InventoryApi.add(data)
prop: "warehouseName", .then(props.research)
},
{
label: "位置",
prop: "location",
}
];
const goodColumn = [
{
label: "名称",
prop: "goodsName",
},
{
label: "规格",
prop: "specParams",
},
{
label: "计量单位",
prop: "unitTxt",
},
];
const goodsChange = (val: any) => {
// console.log(item, 'itemmm')
formData.unit = val.unit;
};
function submitHandler() {
if (status.value === 'view') return
submiting.value = true
if (formData.id != null) {
FormUtil.submit(inventoryFormIns, () => InventoryApi.modify(formData))
.then(() => {
ElMessage.success('修改成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} else { } else {
FormUtil.submit(inventoryFormIns, () => InventoryApi.add(formData)) return InventoryApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success('添加成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} }
} }
defineExpose({ defineExpose({
open(data: InventoryTypes.SearchInventoryResult = {}) { open(data?: InventoryTypes.SearchInventoryResult) {
showDialog.value = true formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) { },
status.value = 'modify'
InventoryApi.detail(data.id!)
.then(res => {
formData.$reset(res.data)
})
} else {
status.value = 'add'
formData.$reset(data)
}
}
}) })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -72,6 +72,11 @@
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/> <ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/>
</ElFormItem> </ElFormItem>
</template> </template>
<template #simpleSearchFormItem="{ searchForm }">
<ElFormItem label="编号">
<ElInput v-model="searchForm.sn" placeholder="编号"/>
</ElFormItem>
</template>
<template #columns> <template #columns>
<ElTableColumn label="编号" prop="sn"/> <ElTableColumn label="编号" prop="sn"/>
<ElTableColumn label="仓库" prop="warehouseName"/> <ElTableColumn label="仓库" prop="warehouseName"/>
@ -87,7 +92,7 @@
<ElTableColumn label="创建时间" prop="createTime" width="170px"/> <ElTableColumn label="创建时间" prop="createTime" width="170px"/>
<ElTableColumn label="修改时间" prop="modifyTime" width="170px"/> <ElTableColumn label="修改时间" prop="modifyTime" width="170px"/>
</template> </template>
<OutOrderForm ref="outOrderForm" @edit-succ="research"/> <OutOrderForm ref="outOrderForm" :research="research"/>
</FormPage> </FormPage>
</template> </template>

View File

@ -1,220 +1,142 @@
<template> <template>
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler"> <AFormPanel
<ElForm :model="formData" :rules="rules" ref="outOrderForm" class="form-panel" label-width="auto"> ref="formPanel"
<!-- <ElFormItem label-width="90" label="编号" prop="sn"> :details-loader="detailsLoader"
<ElInput :do-submit="doSubmit"
v-model="formData.sn" :rules="rules"
:disabled="status === 'view'" :title="status === 'add' ? '新建项目' : '修改项目'"
placeholder="编号"/> >
</ElFormItem> --> <template #default="{formData}">
<ElFormItem label-width="90" label="责任人" prop="responsibleId"> <div class="form-items">
<ASelect labelKey="nickname" :tableColumn="userColumn" v-model="formData.responsibleId" :api="UserApi.paging" :disabled="status === 'view'" placeholder="请选择负责人" /> <ElFormItem label="责任人" prop="responsibleId">
<ASelect v-model="formData.responsibleId" :api="UserApi.paging" :tableColumn="userColumn" labelKey="nickname" placeholder="请选择负责人"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="仓库" prop="warehouseId"> <ElFormItem label="仓库" prop="warehouseId">
<ASelect labelKey="warehouseName" v-model="formData.warehouseId" @change="warehouseChange" :tableColumn="warehouseColumn" :api="WarehouseApi.paging" :disabled="status === 'view'" placeholder="选择仓库" /> <ASelect v-model="formData.warehouseId" :api="WarehouseApi.paging" :tableColumn="warehouseColumn" labelKey="warehouseName" placeholder="选择仓库" @change="warehouseChange"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="存放位置" prop="location"> <ElFormItem label="存放位置" prop="location">
<ElInput v-model="formData.location" :disabled="status === 'view'" placeholder="存放位置" /> <ElInput v-model="formData.location" placeholder="存放位置"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="出库时间" prop="outTime"> <ElFormItem label="出库时间" prop="outTime">
<ElDatePicker v-model="formData.outTime" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择出库日期" /> <ElDatePicker v-model="formData.outTime" format="YYYY-MM-DD" placeholder="请选择出库日期" type="date" value-format="YYYY-MM-DD"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="销售单" prop="orderId"> <ElFormItem label="销售单" prop="orderId">
<ASelect labelKey="sn" @change="orderChange" :tableColumn="orderColumn" v-model="formData.orderId" :api="SalesOrderApi.paging" :disabled="status === 'view'" placeholder="请选择销售单" /> <ASelect v-model="formData.orderId" :api="SalesOrderApi.paging" :tableColumn="orderColumn" labelKey="sn" placeholder="请选择销售单" @change="orderChange"/>
<!-- <ElInput v-model="formData.orderId" :disabled="status === 'view'" placeholder="销售单 Idwh_sales_order.id" /> --> <!-- <ElInput v-model="formData.orderId" placeholder="销售单 Idwh_sales_order.id" /> -->
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="销售单号wh_sales_order.sn" prop="orderSn"> <!-- <ElFormItem label="销售单号wh_sales_order.sn" prop="orderSn">
<ElInput v-model="formData.orderSn" :disabled="status === 'view'" placeholder="销售单号wh_sales_order.sn" /> <ElInput v-model="formData.orderSn" placeholder="销售单号wh_sales_order.sn" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="产品分类" prop="goodsCategoryId"> <ElFormItem label="产品分类" prop="goodsCategoryId">
<ElInput v-model="formData.goodsCategoryId" :disabled="status === 'view'" placeholder="产品分类 Id" /> <ElInput v-model="formData.goodsCategoryId" placeholder="产品分类 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="分类名称" prop="goodsCategoryName"> <ElFormItem label="分类名称" prop="goodsCategoryName">
<ElInput v-model="formData.goodsCategoryName" :disabled="status === 'view'" placeholder="分类名称" /> <ElInput v-model="formData.goodsCategoryName" placeholder="分类名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="产品" prop="goodsId"> <ElFormItem label="产品" prop="goodsId">
<ElInput v-model="formData.goodsId" :disabled="status === 'view'" placeholder="产品 Id" /> <ElInput v-model="formData.goodsId" placeholder="产品 Id"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="产品名称" prop="goodsName"> <ElFormItem label="产品名称" prop="goodsName">
<ElInput v-model="formData.goodsName" :disabled="status === 'view'" placeholder="产品名称" /> <ElInput v-model="formData.goodsName" placeholder="产品名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label="产品编码" label-width="90" prop="goodSn"> <ElFormItem label="产品编码" prop="goodSn">
<ElInput v-model="formData.goodSn" :disabled="status === 'view'" placeholder="产品编码"/> <ElInput v-model="formData.goodSn" placeholder="产品编码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="数量" prop="quantity"> <ElFormItem label="数量" prop="quantity">
<ElInput v-model="formData.quantity" :disabled="status === 'view'" placeholder="数量" /> <ElInput v-model="formData.quantity" placeholder="数量"/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="计量单位字典代码unit" prop="unit"> <!-- <ElFormItem label="计量单位字典代码unit" prop="unit">
<ElInput v-model="formData.unit" :disabled="status === 'view'" placeholder="计量单位字典代码unit" /> <ElInput v-model="formData.unit" placeholder="计量单位字典代码unit" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="备注" prop="memo"> <ElFormItem label="备注" prop="memo">
<ElInput v-model="formData.memo" :disabled="status === 'view'" placeholder="备注" /> <ElInput v-model="formData.memo" placeholder="备注"/>
</ElFormItem> </ElFormItem>
</ElForm> </div>
<template #footer>
<ElButton @click="showDialog = false">{{ status === "view" ? "关闭" : "取消" }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import OutOrderApi from '@/pages/wh/out-order/out-order-api.ts' import OutOrderApi from '@/pages/wh/out-order/out-order-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import Utils from '@/common/utils'
import {
ElMessage,
type FormInstance,
type FormRules,
} from 'element-plus'
import SalesOrderApi from '@/pages/wh/sales-order/sales-order-api.ts' import SalesOrderApi from '@/pages/wh/sales-order/sales-order-api.ts'
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts' import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
import ASelect from '@/components/a-select/ASelect.vue' import ASelect from '@/components/a-select/ASelect.vue'
import UserApi from '@/pages/sys/user/user-api.ts' import UserApi from '@/pages/sys/user/user-api.ts'
import type AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
import type { ComponentExposed } from 'vue-component-type-helpers'
const userColumn = [ const props = withDefaults(defineProps<{
{ research?: () => void
label: "姓名", }>(), {
prop: "nickname", research: () => {
}, },
{ })
label: "联系电话",
prop: "phone",
},
{
label: "用户名",
prop: "account.username",
},
];
const orderColumn = [
{
label: "编号",
prop: "sn",
},
{
label: "产品名称",
prop: "goodsName",
},
{
label: "采购日期",
prop: "purchaseDate ",
},
{
label: "数量",
prop: "quantity",
},
];
const warehouseColumn = [
{
label: "名称",
prop: "warehouseName",
},
{
label: "位置",
prop: "location",
},
];
function warehouseChange(e: any) {
formData.location = e.location;
}
function orderChange(e: any) {
console.log(e, "ee");
formData.orderSn = e.sn;
formData.goodsCategoryId = e.goodsCategoryId;
formData.goodsCategoryName = e.goodsCategoryName;
formData.goodsName = e.goodsName;
formData.goodSn = e.goodSn;
formData.goodsId = e.goodsId;
formData.quantity = e.quantity;
formData.unit = e.unit;
}
const emits = defineEmits(["editSucc"]);
const showDialog = ref(false);
const submiting = ref(false);
const status = ref<"add" | "view" | "modify">("add");
const outOrderFormIns = useTemplateRef<FormInstance>("outOrderForm");
const formData = Utils.resetAble(reactive<OutOrderTypes.SearchOutOrderResult>({}));
const rules = reactive<FormRules<OutOrderTypes.SearchOutOrderResult>>({ const rules = reactive<FormRules<OutOrderTypes.SearchOutOrderResult>>({
id: [{ required: true, message: "请填写Id", trigger: "blur" }], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
sn: [{ required: true, message: "请填写编号", trigger: "blur" }], sn: [ {required: true, message: '请填写编号', trigger: 'blur'} ],
responsibleId: [{ required: true, message: "请填写责任人 Idsys_user.id", trigger: "blur" }], responsibleId: [ {required: true, message: '请填写责任人 Idsys_user.id', trigger: 'blur'} ],
warehouseId: [{ required: true, message: "请填写仓库 Idwh_warehouse.id", trigger: "blur" }], warehouseId: [ {required: true, message: '请填写仓库 Idwh_warehouse.id', trigger: 'blur'} ],
location: [{ required: true, message: "请填写存放位置", trigger: "blur" }], location: [ {required: true, message: '请填写存放位置', trigger: 'blur'} ],
outTime: [{ required: true, message: "请填写出库时间", trigger: "blur" }], outTime: [ {required: true, message: '请填写出库时间', trigger: 'blur'} ],
orderId: [{ required: true, message: "请填写销售单 Idwh_sales_order.id", trigger: "blur" }], orderId: [ {required: true, message: '请填写销售单 Idwh_sales_order.id', trigger: 'blur'} ],
orderSn: [{ required: true, message: "请填写销售单号wh_sales_order.sn", trigger: "blur" }], orderSn: [ {required: true, message: '请填写销售单号wh_sales_order.sn', trigger: 'blur'} ],
goodsCategoryId: [{ required: true, message: "请填写产品分类 Id", trigger: "blur" }], goodsCategoryId: [ {required: true, message: '请填写产品分类 Id', trigger: 'blur'} ],
goodsCategoryName: [{ required: true, message: "请填写分类名称", trigger: "blur" }], goodsCategoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
goodsId: [{ required: true, message: "请填写产品 Id", trigger: "blur" }], goodsId: [ {required: true, message: '请填写产品 Id', trigger: 'blur'} ],
goodsName: [{ required: true, message: "请填写产品名称", trigger: "blur" }], goodsName: [ {required: true, message: '请填写产品名称', trigger: 'blur'} ],
goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ], goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
quantity: [{ required: true, message: "请填写数量", trigger: "blur" }], quantity: [ {required: true, message: '请填写数量', trigger: 'blur'} ],
unit: [{ required: true, message: "请填写计量单位字典代码unit", trigger: "blur" }], unit: [ {required: true, message: '请填写计量单位字典代码unit', trigger: 'blur'} ],
memo: [{ required: true, message: "请填写备注", trigger: "blur" }], memo: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
creatorId: [{ required: true, message: "请填写创建人 Id sys_user.id", trigger: "blur" }], creatorId: [ {required: true, message: '请填写创建人 Id sys_user.id', trigger: 'blur'} ],
modifierId: [{ required: true, message: "请填写修改人 Id sys_user.id", trigger: "blur" }], modifierId: [ {required: true, message: '请填写修改人 Id sys_user.id', trigger: 'blur'} ],
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }], createTime: [ {required: true, message: '请填写创建时间', trigger: 'blur'} ],
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }], modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
deleted: [{ required: true, message: "请填写是否删除; 0-->未删除、1-->已删除", trigger: "blur" }], deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
}); })
function dialogCloseHandler() { const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
formData.$reset(); const status = ref<'add' | 'modify'>('add')
function detailsLoader(id?: string) {
if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else {
status.value = 'modify'
return OutOrderApi
.detail(id!)
.then(res => res.data)
}
} }
function submitHandler() { function doSubmit(data: OutOrderTypes.SearchOutOrderResult) {
if (status.value === "view") return; if (status.value === 'add') {
submiting.value = true; return OutOrderApi.add(data)
if (formData.id != null) { .then(props.research)
FormUtil.submit(outOrderFormIns, () => OutOrderApi.modify(formData))
.then(() => {
ElMessage.success("修改成功");
emits("editSucc");
showDialog.value = false;
})
.finally(() => {
submiting.value = false;
});
} else { } else {
FormUtil.submit(outOrderFormIns, () => OutOrderApi.add(formData)) return OutOrderApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success("添加成功");
emits("editSucc");
showDialog.value = false;
})
.finally(() => {
submiting.value = false;
});
} }
} }
defineExpose({ defineExpose({
open(data: OutOrderTypes.SearchOutOrderResult = {}) { open(data?: OutOrderTypes.SearchOutOrderResult) {
showDialog.value = true; formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) {
status.value = "modify";
OutOrderApi.detail(data.id!).then((res) => {
formData.$reset(res.data);
});
} else {
status.value = "add";
formData.$reset(data);
}
}, },
}); })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -41,6 +41,11 @@
<ElInput v-model="searchForm.quantity" placeholder="数量"/> <ElInput v-model="searchForm.quantity" placeholder="数量"/>
</ElFormItem> </ElFormItem>
</template> </template>
<template #simpleSearchFormItem="{ searchForm }">
<ElFormItem label="编号">
<ElInput v-model="searchForm.sn" placeholder="编号"/>
</ElFormItem>
</template>
<template #columns> <template #columns>
<ElTableColumn label="编号" prop="sn"/> <ElTableColumn label="编号" prop="sn"/>
<ElTableColumn label="状态" prop="purchaseOrderStatus"/> <ElTableColumn label="状态" prop="purchaseOrderStatus"/>
@ -56,7 +61,7 @@
<ElTableColumn label="创建时间" prop="createTime"/> <ElTableColumn label="创建时间" prop="createTime"/>
<ElTableColumn label="修改时间" prop="modifyTime"/> <ElTableColumn label="修改时间" prop="modifyTime"/>
</template> </template>
<PurchaseOrderForm ref="purchaseOrderForm" @edit-succ="paging"/> <PurchaseOrderForm ref="purchaseOrderForm" :research="research"/>
</FormPage> </FormPage>
</template> </template>
@ -68,8 +73,10 @@ import type {
ActionColumnType, ActionColumnType,
ToolType, ToolType,
} from '@/components/page/a-page-type.ts' } from '@/components/page/a-page-type.ts'
import type { ComponentExposed } from 'vue-component-type-helpers'
const purchaseOrderFormIns = useTemplateRef<InstanceType<typeof PurchaseOrderForm>>('purchaseOrderForm') const purchaseOrderFormIns = useTemplateRef<InstanceType<typeof PurchaseOrderForm>>('purchaseOrderForm')
const formPageIns = useTemplateRef<ComponentExposed<typeof FormPage>>('formPage')
const actionColumn = reactive<ActionColumnType<PurchaseOrderTypes.SearchPurchaseOrderResult>>({ const actionColumn = reactive<ActionColumnType<PurchaseOrderTypes.SearchPurchaseOrderResult>>({
tableActions: [ tableActions: [
@ -93,7 +100,7 @@ const actionColumn = reactive<ActionColumnType<PurchaseOrderTypes.SearchPurchase
PurchaseOrderApi.del([ row.id! ]) PurchaseOrderApi.del([ row.id! ])
.then(() => { .then(() => {
ElMessage.success('删除成功') ElMessage.success('删除成功')
paging() research()
}) })
.finally(() => { .finally(() => {
this.loading = false this.loading = false
@ -112,8 +119,11 @@ const leftTools: ToolType[] = [
}, },
] ]
function research() {
formPageIns.value?.doSearch()
}
function paging(param: PurchaseOrderTypes.SearchPurchaseOrderParam) { function paging(param: PurchaseOrderTypes.SearchPurchaseOrderParam) {
return PurchaseOrderApi.paging(param) return PurchaseOrderApi.paging(param)
} }
</script> </script>

View File

@ -1,213 +1,126 @@
<template> <template>
<ElDialog v-model="showDialog" :destroy-on-close="true" :close-on-click-modal="false" width="fit-content" @close="dialogCloseHandler"> <AFormPanel
<ElForm :model="formData" :rules="rules" ref="purchaseOrderForm" class="form-panel" label-width="auto"> ref="formPanel"
<!-- <ElFormItem label-width="90" label="Id" prop="id"> :details-loader="detailsLoader"
<ElInput v-model="formData.id" :disabled="status === 'view'" placeholder="Id" /> :do-submit="doSubmit"
</ElFormItem> --> :rules="rules"
<!-- <ElFormItem label-width="90" label="编号" prop="sn"> :title="status === 'add' ? '新建项目' : '修改项目'"
<ElInput v-model="formData.sn" :disabled="status === 'view'" placeholder="编号" /> >
<template #default="{formData}">
<div class="form-items">
<ElFormItem label="供货客户" prop="customerId">
</ElFormItem>
<ElFormItem label="采购日期" prop="purchaseDate">
<el-date-picker v-model="formData.purchaseDate" format="YYYY-MM-DD" placeholder="请选择采购日期" type="date" value-format="YYYY-MM-DD"/>
</ElFormItem>
<ElFormItem label="到货日期" prop="arrivalDate">
<el-date-picker v-model="formData.arrivalDate" format="YYYY-MM-DD" placeholder="请选择采购日期" type="date" value-format="YYYY-MM-DD"/>
<!-- <ElInput v-model="formData.arrivalDate" placeholder="到货日期" /> -->
</ElFormItem>
<!-- <ElFormItem label="产品分类" prop="goodsCategoryId">
<ElInput v-model="formData.goodsCategoryId" placeholder="产品分类" />
</ElFormItem>
<ElFormItem label="分类名称" prop="goodsCategoryName">
<ElInput v-model="formData.goodsCategoryName" placeholder="分类名称" />
</ElFormItem> --> </ElFormItem> -->
<!-- JinXingZhong--进行中YiDaoHuo--已到货YiRuKu--已入库YiQuXiao--已取消 --> <ElFormItem label="产品" prop="goodsId">
<!-- <ElFormItem label-width="90" label="状态" prop="purchaseOrderStatus">
<ElInput v-model="formData.purchaseOrderStatus" :disabled="status === 'view'" placeholder="状态" />
</ElFormItem> -->
<ElFormItem label-width="90" label="供货客户" prop="customerId">
<!-- <ElSelect v-model="formData.goodsCategoryId" :disabled="status === 'view'" placeholder="产品类型" filterable remote reserve-keyword remote-show-suffix :remote-method="remoteMethod" :loading="loading" style="width: 240px">
<ElOption v-for="item in category" :key="item.id" :label="item.categoryName" :value="item.id" />
</ElSelect> -->
<ASelect labelKey="customerName" :tableColumn="customerColumn" v-model="formData.customerId" :api="CustomerApi.paging" :disabled="status === 'view'" placeholder="供货客户" />
</ElFormItem>
<ElFormItem label-width="90" label="采购日期" prop="purchaseDate">
<el-date-picker v-model="formData.purchaseDate" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择采购日期" />
</ElFormItem>
<ElFormItem label-width="90" label="到货日期" prop="arrivalDate">
<el-date-picker v-model="formData.arrivalDate" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择采购日期" />
<!-- <ElInput v-model="formData.arrivalDate" :disabled="status === 'view'" placeholder="到货日期" /> -->
</ElFormItem>
<!-- <ElFormItem label-width="90" label="产品分类" prop="goodsCategoryId">
<ElInput v-model="formData.goodsCategoryId" :disabled="status === 'view'" placeholder="产品分类" />
</ElFormItem>
<ElFormItem label-width="90" label="分类名称" prop="goodsCategoryName">
<ElInput v-model="formData.goodsCategoryName" :disabled="status === 'view'" placeholder="分类名称" />
</ElFormItem> -->
<ElFormItem label-width="90" label="产品" prop="goodsId">
<ASelect labelKey="goodsName" v-model="formData.goodsId" :tableColumn="goodColumn" @change="goodsChange" :api="GoodsApi.paging" :disabled="status === 'view'" placeholder="选择产品" />
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="产品编码" prop="goodSn"> <!-- <ElFormItem label="产品编码" prop="goodSn">
<ElInput v-model="formData.goodSn" :disabled="status === 'view'" placeholder="产品编码" /> <ElInput v-model="formData.goodSn" placeholder="产品编码" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="数量" prop="quantity"> <ElFormItem label="数量" prop="quantity">
<ElInput v-model="formData.quantity" :disabled="status === 'view'" placeholder="数量" /> <ElInput v-model="formData.quantity" placeholder="数量"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="计量单位" prop="unit"> <ElFormItem label="计量单位" prop="unit">
<ElInput v-model="formData.unit" readonly placeholder="计量单位" /> <ElInput v-model="formData.unit" placeholder="计量单位" readonly/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="总金额" prop="totalMoney"> <ElFormItem label="总金额" prop="totalMoney">
<ElInput v-model="formData.totalMoney" :disabled="status === 'view'" placeholder="总金额;单位:元" /> <ElInput v-model="formData.totalMoney" placeholder="总金额;单位:元"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注" prop="memo"> <ElFormItem label="备注" prop="memo">
<ElInput v-model="formData.memo" :disabled="status === 'view'" placeholder="备注" /> <ElInput v-model="formData.memo" placeholder="备注"/>
</ElFormItem> </ElFormItem>
</ElForm> </div>
<template #footer>
<ElButton @click="showDialog = false">{{ status === "view" ? "关闭" : "取消" }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import PurchaseOrderApi from '@/pages/wh/purchase-order/purchase-order-api.ts' import PurchaseOrderApi from '@/pages/wh/purchase-order/purchase-order-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import Utils from '@/common/utils' import type { ComponentExposed } from 'vue-component-type-helpers'
import { import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
ElMessage,
type FormInstance,
type FormRules,
} from 'element-plus'
// import GoodsCategoryApi from '@/pages/gds/goods-category/goods-category-api.ts'
import CustomerApi from '@/pages/cst/customer/customer-api.ts'
import GoodsApi from '@/pages/gds/goods/goods-api.ts'
import ASelect from '@/components/a-select/ASelect.vue'
const emits = defineEmits(["editSucc"]); const props = withDefaults(defineProps<{
const showDialog = ref(false); research?: () => void
const submiting = ref(false); }>(), {
const status = ref<"add" | "view" | "modify">("add"); research: () => {
},
})
const purchaseOrderFormIns = useTemplateRef<FormInstance>("purchaseOrderForm");
const formData = Utils.resetAble(reactive<PurchaseOrderTypes.SearchPurchaseOrderResult>({}));
const rules = reactive<FormRules<PurchaseOrderTypes.SearchPurchaseOrderResult>>({ const rules = reactive<FormRules<PurchaseOrderTypes.SearchPurchaseOrderResult>>({
sn: [{ required: true, message: "请填写编号", trigger: "blur" }], sn: [ {required: true, message: '请填写编号', trigger: 'blur'} ],
purchaseOrderStatus: [{ required: true, message: "请填写状态", trigger: "blur" }], purchaseOrderStatus: [ {required: true, message: '请填写状态', trigger: 'blur'} ],
customerId: [{ required: true, message: "请填写供货客户", trigger: "blur" }], customerId: [ {required: true, message: '请填写供货客户', trigger: 'blur'} ],
purchaseDate: [{ required: true, message: "请填写采购日期", trigger: "blur" }], purchaseDate: [ {required: true, message: '请填写采购日期', trigger: 'blur'} ],
arrivalDate: [{ required: true, message: "请填写到货日期", trigger: "blur" }], arrivalDate: [ {required: true, message: '请填写到货日期', trigger: 'blur'} ],
goodsCategoryId: [{ required: true, message: "请填写产品分类", trigger: "blur" }], goodsCategoryId: [ {required: true, message: '请填写产品分类', trigger: 'blur'} ],
goodsCategoryName: [{ required: true, message: "请填写分类名称", trigger: "blur" }], goodsCategoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
goodsId: [{ required: true, message: "请填写产品", trigger: "blur" }], goodsId: [ {required: true, message: '请填写产品', trigger: 'blur'} ],
goodsName: [{ required: true, message: "请填写产品名称", trigger: "blur" }], goodsName: [ {required: true, message: '请填写产品名称', trigger: 'blur'} ],
goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ], goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
quantity: [{ required: true, message: "请填写数量", trigger: "blur" }], quantity: [ {required: true, message: '请填写数量', trigger: 'blur'} ],
unit: [{ required: true, message: "请填写计量单位", trigger: "blur" }], unit: [ {required: true, message: '请填写计量单位', trigger: 'blur'} ],
totalMoney: [{ required: true, message: "请填写总金额;单位:元", trigger: "blur" }], totalMoney: [ {required: true, message: '请填写总金额;单位:元', trigger: 'blur'} ],
memo: [{ required: true, message: "请填写备注", trigger: "blur" }], memo: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
creatorId: [{ required: true, message: "请填写创建人", trigger: "blur" }], creatorId: [ {required: true, message: '请填写创建人', trigger: 'blur'} ],
modifierId: [{ required: true, message: "请填写修改人", trigger: "blur" }], modifierId: [ {required: true, message: '请填写修改人', trigger: 'blur'} ],
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }], createTime: [ {required: true, message: '请填写创建时间', trigger: 'blur'} ],
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }], modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
}); })
const goodColumn = [
{
label: "名称",
prop: "goodsName",
},
{
label: "规格",
prop: "specParams",
},
{
label: "计量单位",
prop: "unitTxt",
},
];
const customerColumn = [ const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
{ const status = ref<'add' | 'modify'>('add')
label: "公司",
prop: "orgName",
},
{
label: "地区",
prop: "areaName",
},
{
label: "负责人",
prop: "customerName",
},
];
const goodsChange = (val: any) => { function detailsLoader(id?: string) {
// console.log(item, 'itemmm') if (Strings.isBlank(id)) {
formData.goodsCategoryName = val.goodsCategoryName; status.value = 'add'
formData.goodsName = val.goodsName; return Promise.resolve()
formData.goodSn = val.sn; } else {
formData.unit = val.unit; status.value = 'modify'
formData.goodsCategoryId = val.goodsCategoryId; return PurchaseOrderApi
}; .detail(id!)
.then(res => res.data)
// const iconTableDataSource = ref<any>( }
// icons.glyphs.filter((_, i) => {
// return i >= 0 && i < 5;
// })
// );
// const remoteMethod = (query: string) => {
// console.log(query, "query");
// loading.value = true;
// CustomerApi.paging({ size: 50, categoryName: query || undefined }).then((res) => {
// category.value = res.data.records;
// loading.value = false;
// });
// };
function dialogCloseHandler() {
formData.$reset();
} }
function submitHandler() { function doSubmit(data: PurchaseOrderTypes.SearchPurchaseOrderResult) {
if (status.value === "view") return; if (status.value === 'add') {
submiting.value = true; return PurchaseOrderApi.add(data)
if (formData.id != null) { .then(props.research)
FormUtil.submit(purchaseOrderFormIns, () => PurchaseOrderApi.modify(formData))
.then(() => {
ElMessage.success("修改成功");
emits("editSucc");
showDialog.value = false;
})
.finally(() => {
submiting.value = false;
});
} else { } else {
FormUtil.submit(purchaseOrderFormIns, () => PurchaseOrderApi.add(formData)) return PurchaseOrderApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success("添加成功");
emits("editSucc");
showDialog.value = false;
})
.finally(() => {
submiting.value = false;
});
} }
} }
defineExpose({ defineExpose({
open(data: PurchaseOrderTypes.SearchPurchaseOrderResult = {}) { open(data?: PurchaseOrderTypes.SearchPurchaseOrderResult) {
if (!Strings.isBlank(data.id)) { formPanelIns.value?.open(data?.id)
status.value = "modify";
PurchaseOrderApi.detail(data.id!).then((res) => {
formData.$reset(res.data);
});
} else {
status.value = "add";
formData.$reset(data);
}
showDialog.value = true;
console.log(formData.goodsId, "formData");
}, },
}); })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -67,6 +67,16 @@
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/> <ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/>
</ElFormItem> </ElFormItem>
</template> </template>
<template #simpleSearchFormItem="{ searchForm }">
<!-- <ElFormItem label="Id">
<ElInput
v-model="searchForm.id"
placeholder="Id"/>
</ElFormItem> -->
<ElFormItem label="编号">
<ElInput v-model="searchForm.sn" placeholder="编号"/>
</ElFormItem>
</template>
<template #columns> <template #columns>
<!-- <ElTableColumn label="Id" prop="id" /> --> <!-- <ElTableColumn label="Id" prop="id" /> -->
<ElTableColumn label="编号" prop="sn"/> <ElTableColumn label="编号" prop="sn"/>
@ -88,7 +98,7 @@
<ElTableColumn label="创建时间" prop="createTime" width="180"/> <ElTableColumn label="创建时间" prop="createTime" width="180"/>
<ElTableColumn label="修改时间" prop="modifyTime" width="180"/> <ElTableColumn label="修改时间" prop="modifyTime" width="180"/>
</template> </template>
<SalesOrderForm ref="salesOrderForm" @edit-succ="research"/> <SalesOrderForm ref="salesOrderForm" :research="research"/>
</FormPage> </FormPage>
</template> </template>

View File

@ -1,219 +1,145 @@
<template> <template>
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler"> <AFormPanel
<ElForm :model="formData" :rules="rules" ref="salesOrderForm" class="form-panel" label-width="auto"> ref="formPanel"
<!-- <ElFormItem label-width="90" label="编号" prop="sn"> :details-loader="detailsLoader"
<ElInput v-model="formData.sn" :disabled="status === 'view'" placeholder="编号" /> :do-submit="doSubmit"
</ElFormItem> --> :rules="rules"
<ElFormItem label-width="90" label="状态" prop="salesOrderStatus"> :title="status === 'add' ? '新建项目' : '修改项目'"
<ElSelect v-model="formData.salesOrderStatus" :disabled="status === 'view'" placeholder="身份类型"> >
<ElOption v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" /> <template #default="{formData}">
<div class="form-items">
<ElFormItem label="状态" prop="salesOrderStatus">
<ElSelect v-model="formData.salesOrderStatus" placeholder="身份类型">
<ElOption v-for="item in salesOrderStatus" :key="item.val" :label="item.txt" :value="item.val"/>
</ElSelect> </ElSelect>
<!-- <ElInput v-model="formData.salesOrderStatus" :disabled="status === 'view'" placeholder="状态" /> --> <!-- <ElInput v-model="formData.salesOrderStatus" placeholder="状态" /> -->
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="购买方客户" prop="customerId"> <ElFormItem label="购买方客户" prop="customerId">
<ASelect labelKey="customerName" :tableColumn="customerColumn" v-model="formData.customerId" :api="CustomerApi.paging" :disabled="status === 'view'" placeholder="购买方客户" />
<!-- <ElInput v-model="formData.customerId" :disabled="status === 'view'" placeholder="购买方客户 Id" /> --> <!-- <ElInput v-model="formData.customerId" placeholder="购买方客户 Id" /> -->
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="下单日期" prop="orderDate"> <ElFormItem label="下单日期" prop="orderDate">
<ElDatePicker v-model="formData.orderDate" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择采购日期" /> <ElDatePicker v-model="formData.orderDate" format="YYYY-MM-DD" placeholder="请选择采购日期" type="date" value-format="YYYY-MM-DD"/>
<!-- <ElInput v-model="formData.orderDate" :disabled="status === 'view'" placeholder="下单日期" /> --> <!-- <ElInput v-model="formData.orderDate" placeholder="下单日期" /> -->
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="发货日期" prop="shipmentDate"> <ElFormItem label="发货日期" prop="shipmentDate">
<!-- <ElDatePicker v-model="formData.shipmentDate" :disabled="status === 'view'" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择发货日期" /> --> <!-- <ElDatePicker v-model="formData.shipmentDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择发货日期" /> -->
<ElDatePicker v-model="formData.shipmentDate" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择发货日期" /> <ElDatePicker v-model="formData.shipmentDate" format="YYYY-MM-DD" placeholder="请选择发货日期" type="date" value-format="YYYY-MM-DD"/>
<!-- <ElInput v-model="formData.shipmentDate" :disabled="status === 'view'" placeholder="发货日期" /> --> <!-- <ElInput v-model="formData.shipmentDate" placeholder="发货日期" /> -->
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="产品分类 Id" prop="goodsCategoryId"> <!-- <ElFormItem label="产品分类 Id" prop="goodsCategoryId">
<ElInput v-model="formData.goodsCategoryId" :disabled="status === 'view'" placeholder="产品分类 Id" /> <ElInput v-model="formData.goodsCategoryId" placeholder="产品分类 Id" />
</ElFormItem> --> </ElFormItem> -->
<!-- <ElFormItem label-width="90" label="分类名称" prop="goodsCategoryName"> <!-- <ElFormItem label="分类名称" prop="goodsCategoryName">
<ElInput v-model="formData.goodsCategoryName" :disabled="status === 'view'" placeholder="分类名称" /> <ElInput v-model="formData.goodsCategoryName" placeholder="分类名称" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="产品" prop="goodsId"> <ElFormItem label="产品" prop="goodsId">
<ASelect labelKey="goodsName" v-model="formData.goodsId" :tableColumn="goodColumn" @change="goodsChange" :api="GoodsApi.paging" :disabled="status === 'view'" placeholder="选择产品" /> <!-- <ElInput v-model="formData.goodsId" placeholder="产品 Id" /> -->
<!-- <ElInput v-model="formData.goodsId" :disabled="status === 'view'" placeholder="产品 Id" /> -->
</ElFormItem> </ElFormItem>
<ElFormItem label="产品编码" label-width="90" prop="goodSn"> <ElFormItem label="产品编码" prop="goodSn">
<ElInput v-model="formData.goodSn" :disabled="status === 'view'" placeholder="产品编码"/> <ElInput v-model="formData.goodSn" placeholder="产品编码"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="数量" prop="quantity"> <ElFormItem label="数量" prop="quantity">
<ElInput v-model="formData.quantity" :disabled="status === 'view'" placeholder="数量" /> <ElInput v-model="formData.quantity" placeholder="数量"/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="计量单位" prop="unit"> <!-- <ElFormItem label="计量单位" prop="unit">
<ElInput v-model="formData.unit" readonly :disabled="status === 'view'" placeholder="计量单位字典代码unit" /> <ElInput v-model="formData.unit" readonly placeholder="计量单位字典代码unit" />
</ElFormItem> --> </ElFormItem> -->
<ElFormItem label-width="90" label="总金额(元)" prop="totalMoney"> <ElFormItem label="总金额(元)" prop="totalMoney">
<ElInput v-model="formData.totalMoney" :disabled="status === 'view'" placeholder="总金额;单位:元" /> <ElInput v-model="formData.totalMoney" placeholder="总金额;单位:元"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="备注" prop="memo"> <ElFormItem label="备注" prop="memo">
<ElInput v-model="formData.memo" :disabled="status === 'view'" placeholder="备注" /> <ElInput v-model="formData.memo" placeholder="备注"/>
</ElFormItem> </ElFormItem>
<!-- <ElFormItem label-width="90" label="创建时间" prop="createTime"> <!-- <ElFormItem label="创建时间" prop="createTime">
<ElInput v-model="formData.createTime" :disabled="status === 'view'" placeholder="创建时间" /> <ElInput v-model="formData.createTime" placeholder="创建时间" />
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="修改时间" prop="modifyTime"> <ElFormItem label="修改时间" prop="modifyTime">
<ElInput v-model="formData.modifyTime" :disabled="status === 'view'" placeholder="修改时间" /> <ElInput v-model="formData.modifyTime" placeholder="修改时间" />
</ElFormItem> --> </ElFormItem> -->
</ElForm> </div>
<template #footer>
<ElButton @click="showDialog = false">{{ status === "view" ? "关闭" : "取消" }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import SalesOrderApi from '@/pages/wh/sales-order/sales-order-api.ts' import SalesOrderApi from '@/pages/wh/sales-order/sales-order-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import Utils from '@/common/utils' import type { ComponentExposed } from 'vue-component-type-helpers'
import { import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
ElMessage, import { salesOrderStatus } from '@/pages/wh/sales-order/constants.ts'
type FormInstance,
type FormRules,
} from 'element-plus'
import CustomerApi from '@/pages/cst/customer/customer-api.ts'
import GoodsApi from '@/pages/gds/goods/goods-api.ts'
import ASelect from '@/components/a-select/ASelect.vue'
const emits = defineEmits(["editSucc"]); const props = withDefaults(defineProps<{
const showDialog = ref(false); research?: () => void
const submiting = ref(false); }>(), {
const status = ref<"add" | "view" | "modify">("add"); research: () => {
},
const salesOrderFormIns = useTemplateRef<FormInstance>("salesOrderForm"); })
const formData = Utils.resetAble(reactive<SalesOrderTypes.SearchSalesOrderResult>({}));
const rules = reactive<FormRules<SalesOrderTypes.SearchSalesOrderResult>>({ const rules = reactive<FormRules<SalesOrderTypes.SearchSalesOrderResult>>({
id: [{ required: true, message: "请填写Id", trigger: "blur" }], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
sn: [{ required: true, message: "请填写编号", trigger: "blur" }], sn: [ {required: true, message: '请填写编号', trigger: 'blur'} ],
salesOrderStatus: [{ required: true, message: "请填写状态", trigger: "blur" }], salesOrderStatus: [ {required: true, message: '请填写状态', trigger: 'blur'} ],
customerId: [{ required: true, message: "请填写购买方客户 Id", trigger: "blur" }], customerId: [ {required: true, message: '请填写购买方客户 Id', trigger: 'blur'} ],
orderDate: [{ required: true, message: "请填写下单日期", trigger: "blur" }], orderDate: [ {required: true, message: '请填写下单日期', trigger: 'blur'} ],
shipmentDate: [{ required: true, message: "请填写发货日期", trigger: "blur" }], shipmentDate: [ {required: true, message: '请填写发货日期', trigger: 'blur'} ],
goodsCategoryId: [{ required: true, message: "请填写产品分类 Id", trigger: "blur" }], goodsCategoryId: [ {required: true, message: '请填写产品分类 Id', trigger: 'blur'} ],
goodsCategoryName: [{ required: true, message: "请填写分类名称", trigger: "blur" }], goodsCategoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
goodsId: [{ required: true, message: "请填写产品 Id", trigger: "blur" }], goodsId: [ {required: true, message: '请填写产品 Id', trigger: 'blur'} ],
goodsName: [{ required: true, message: "请填写产品名称", trigger: "blur" }], goodsName: [ {required: true, message: '请填写产品名称', trigger: 'blur'} ],
goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ], goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
quantity: [{ required: true, message: "请填写数量", trigger: "blur" }], quantity: [ {required: true, message: '请填写数量', trigger: 'blur'} ],
unit: [{ required: true, message: "请填写计量单位字典代码unit", trigger: "blur" }], unit: [ {required: true, message: '请填写计量单位字典代码unit', trigger: 'blur'} ],
totalMoney: [{ required: true, message: "请填写总金额;单位:元", trigger: "blur" }], totalMoney: [ {required: true, message: '请填写总金额;单位:元', trigger: 'blur'} ],
memo: [{ required: true, message: "请填写备注", trigger: "blur" }], memo: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
creatorId: [{ required: true, message: "请填写创建人 Id sys_user.id", trigger: "blur" }], creatorId: [ {required: true, message: '请填写创建人 Id sys_user.id', trigger: 'blur'} ],
modifierId: [{ required: true, message: "请填写修改人 Id sys_user.id", trigger: "blur" }], modifierId: [ {required: true, message: '请填写修改人 Id sys_user.id', trigger: 'blur'} ],
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }], createTime: [ {required: true, message: '请填写创建时间', trigger: 'blur'} ],
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }], modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
deleted: [{ required: true, message: "请填写是否删除; 0-->未删除、1-->已删除", trigger: "blur" }], deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
}); })
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
const status = ref<'add' | 'modify'>('add')
const statusList = [ function detailsLoader(id?: string) {
{ if (Strings.isBlank(id)) {
value: "JinXingZhong", status.value = 'add'
label: "进行中", return Promise.resolve()
}, } else {
{ status.value = 'modify'
value: "YiFaHuo", return SalesOrderApi
label: "已发货", .detail(id!)
}, .then(res => res.data)
{ }
value: "YiChuKu",
label: "已出库",
},
{
value: "YiQuXiao",
label: "已取消",
},
];
const goodColumn = [
{
label: "名称",
prop: "goodsName",
},
{
label: "规格",
prop: "specParams",
},
{
label: "计量单位",
prop: "unitTxt",
},
];
const goodsChange = (val: any) => {
// console.log(item, 'itemmm')
formData.goodsCategoryName = val.goodsCategoryName;
formData.goodsName = val.goodsName;
formData.goodSn = val.sn;
formData.unit = val.unit;
formData.goodsCategoryId = val.goodsCategoryId;
};
const customerColumn = [
{
label: "公司",
prop: "orgName",
},
{
label: "地区",
prop: "areaName",
},
{
label: "负责人",
prop: "customerName",
},
];
function dialogCloseHandler() {
formData.$reset();
} }
function submitHandler() { function doSubmit(data: SalesOrderTypes.SearchSalesOrderResult) {
if (status.value === "view") return; if (status.value === 'add') {
submiting.value = true; return SalesOrderApi.add(data)
if (formData.id != null) { .then(props.research)
FormUtil.submit(salesOrderFormIns, () => SalesOrderApi.modify(formData))
.then(() => {
ElMessage.success("修改成功");
emits("editSucc");
showDialog.value = false;
})
.finally(() => {
submiting.value = false;
});
} else { } else {
FormUtil.submit(salesOrderFormIns, () => SalesOrderApi.add(formData)) return SalesOrderApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success("添加成功");
emits("editSucc");
showDialog.value = false;
})
.finally(() => {
submiting.value = false;
});
} }
} }
defineExpose({ defineExpose({
open(data: SalesOrderTypes.SearchSalesOrderResult = {}) { open(data?: SalesOrderTypes.SearchSalesOrderResult) {
showDialog.value = true; formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) {
status.value = "modify";
SalesOrderApi.detail(data.id!).then((res) => {
formData.$reset(res.data);
});
} else {
status.value = "add";
formData.$reset(data);
}
}, },
}); })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>

View File

@ -0,0 +1,22 @@
import { createEnum } from '@/common/utils/enums.ts'
const salesOrderStatusList = [
{
val: 'JinXingZhong',
txt: '进行中',
},
{
val: 'YiFaHuo',
txt: '已发货',
},
{
val: 'YiChuKu',
txt: '已出库',
},
{
val: 'YiQuXiao',
txt: '已取消',
},
] as const
export const salesOrderStatus = createEnum(salesOrderStatusList)

View File

@ -38,6 +38,15 @@
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
</template> </template>
<template #simpleSearchFormItem="{ searchForm }">
<ElForm inline @submit.prevent="paging">
<ElFormItem label="仓库名称">
<ElInput
v-model="searchForm.warehouseName"
placeholder="仓库名称"/>
</ElFormItem>
</ElForm>
</template>
<template #columns> <template #columns>
<ElTableColumn label="Id" prop="id"/> <ElTableColumn label="Id" prop="id"/>
<ElTableColumn label="仓库名称" prop="warehouseName"/> <ElTableColumn label="仓库名称" prop="warehouseName"/>
@ -48,7 +57,7 @@
<ElTableColumn label="修改时间" prop="modifyTime"/> <ElTableColumn label="修改时间" prop="modifyTime"/>
<!-- <ElTableColumn label="是否删除; 0-->未删除、1-->已删除" prop="deleted"/> --> <!-- <ElTableColumn label="是否删除; 0-->未删除、1-->已删除" prop="deleted"/> -->
</template> </template>
<WarehouseForm ref="warehouseForm" @edit-succ="research"/> <WarehouseForm ref="warehouseForm" :research="research"/>
</FormPage> </FormPage>
</template> </template>

View File

@ -1,54 +1,44 @@
<template> <template>
<ElDialog v-model="showDialog" <AFormPanel
:close-on-click-modal="false" ref="formPanel"
destroy-on-close :details-loader="detailsLoader"
width="fit-content" :do-submit="doSubmit"
@close="dialogCloseHandler">
<ElForm :model="formData"
:rules="rules" :rules="rules"
ref="warehouseForm" :title="status === 'add' ? '新建项目' : '修改项目'"
class="form-panel" >
label-width="auto"> <template #default="{formData}">
<ElFormItem label-width="90" label="仓库名称" prop="warehouseName"> <div class="form-items">
<ElFormItem label="仓库名称" prop="warehouseName">
<ElInput <ElInput
v-model="formData.warehouseName" v-model="formData.warehouseName"
:disabled="status === 'view'"
placeholder="仓库名称"/> placeholder="仓库名称"/>
</ElFormItem> </ElFormItem>
<ElFormItem label-width="90" label="位置" prop="location"> <ElFormItem label="位置" prop="location">
<ElInput <ElInput
v-model="formData.location" v-model="formData.location"
:disabled="status === 'view'"
placeholder="位置"/> placeholder="位置"/>
</ElFormItem> </ElFormItem>
</ElForm> </div>
<template #footer>
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler"></ElButton>
</template> </template>
</ElDialog> </AFormPanel>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts' import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
import Strings from '@/common/utils/strings.ts' import Strings from '@/common/utils/strings.ts'
import FormUtil from '@/common/utils/formUtil.ts' import { type FormRules } from 'element-plus'
import Utils from '@/common/utils' import type { ComponentExposed } from 'vue-component-type-helpers'
import { import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
ElMessage,
type FormInstance,
type FormRules,
} from 'element-plus'
const emits = defineEmits(['editSucc']) const props = withDefaults(defineProps<{
const showDialog = ref(false) research?: () => void
const submiting = ref(false) }>(), {
const status = ref<'add' | 'view' | 'modify'>('add') research: () => {
},
const warehouseFormIns = useTemplateRef<FormInstance>('warehouseForm') })
const formData = Utils.resetAble(reactive<WarehouseTypes.SearchWarehouseResult>({}))
const rules = reactive<FormRules<WarehouseTypes.SearchWarehouseResult>>({ const rules = reactive<FormRules<WarehouseTypes.SearchWarehouseResult>>({
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ], id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
warehouseName: [ {required: true, message: '请填写仓库名称', trigger: 'blur'} ], warehouseName: [ {required: true, message: '请填写仓库名称', trigger: 'blur'} ],
@ -60,55 +50,43 @@ modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur'
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ], deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
}) })
function dialogCloseHandler() { const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
formData.$reset() const status = ref<'add' | 'modify'>('add')
function detailsLoader(id?: string) {
if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve()
} else {
status.value = 'modify'
return WarehouseApi
.detail(id!)
.then(res => res.data)
}
} }
function submitHandler() { function doSubmit(data: WarehouseTypes.SearchWarehouseResult) {
if (status.value === 'view') return if (status.value === 'add') {
submiting.value = true return WarehouseApi.add(data)
if (formData.id != null) { .then(props.research)
FormUtil.submit(warehouseFormIns, () => WarehouseApi.modify(formData))
.then(() => {
ElMessage.success('修改成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} else { } else {
FormUtil.submit(warehouseFormIns, () => WarehouseApi.add(formData)) return WarehouseApi.modify(data)
.then(() => { .then(props.research)
ElMessage.success('添加成功')
emits('editSucc')
showDialog.value = false
})
.finally(() => {
submiting.value = false
})
} }
} }
defineExpose({ defineExpose({
open(data: WarehouseTypes.SearchWarehouseResult = {}) { open(data?: WarehouseTypes.SearchWarehouseResult) {
showDialog.value = true formPanelIns.value?.open(data?.id)
if (!Strings.isBlank(data.id)) { },
status.value = 'modify'
WarehouseApi.detail(data.id!)
.then(res => {
formData.$reset(res.data)
})
} else {
status.value = 'add'
formData.$reset(data)
}
}
}) })
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
.form-panel { .form-items {
padding 20px grid-template-columns: 1fr 1fr;
:deep(.el-form-item) {
}
} }
</style> </style>