master
parent
fb8cd34f9b
commit
ee3a206003
|
|
@ -1,10 +1,6 @@
|
|||
# 应用名称
|
||||
VITE_APP_NAME=(开发环境)再昇云收运处平台
|
||||
# 后台服务地址
|
||||
# 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=http://localhost:10086
|
||||
|
||||
# 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
|
||||
|
|
|
|||
|
|
@ -81,7 +81,6 @@
|
|||
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.27.1",
|
||||
"@babel/generator": "^7.28.5",
|
||||
|
|
@ -1064,7 +1063,6 @@
|
|||
"integrity": "sha512-lLt8KLHyl7IClc3RqRpRikz15eCfTRlAWL9leVzPyg5N87FfKE/7EWgWvpiL/z4Tf3dQCIqQb88TmHE0JTIDvA==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"c12": "^3.3.1",
|
||||
"consola": "^3.4.2",
|
||||
|
|
@ -1776,7 +1774,6 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz",
|
||||
"integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/lodash": "*"
|
||||
}
|
||||
|
|
@ -1794,7 +1791,6 @@
|
|||
"integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~7.16.0"
|
||||
}
|
||||
|
|
@ -2448,7 +2444,6 @@
|
|||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"baseline-browser-mapping": "^2.8.25",
|
||||
"caniuse-lite": "^1.0.30001754",
|
||||
|
|
@ -3746,15 +3741,13 @@
|
|||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash-es": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
|
||||
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash-unified": {
|
||||
"version": "1.0.3",
|
||||
|
|
@ -4251,7 +4244,6 @@
|
|||
"resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz",
|
||||
"integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/devtools-api": "^7.7.7"
|
||||
},
|
||||
|
|
@ -4324,7 +4316,6 @@
|
|||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.11",
|
||||
"picocolors": "^1.1.1",
|
||||
|
|
@ -4943,7 +4934,6 @@
|
|||
"integrity": "sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@adobe/css-tools": "~4.3.3",
|
||||
"debug": "^4.3.2",
|
||||
|
|
@ -5024,7 +5014,6 @@
|
|||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
|
|
@ -5082,7 +5071,6 @@
|
|||
"integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
|
||||
"devOptional": true,
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
|
|
@ -5545,7 +5533,6 @@
|
|||
"integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.25.0",
|
||||
"fdir": "^6.5.0",
|
||||
|
|
@ -5836,7 +5823,6 @@
|
|||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
|
|
@ -5856,7 +5842,6 @@
|
|||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz",
|
||||
"integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.5.25",
|
||||
"@vue/compiler-sfc": "3.5.25",
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
<ElTableColumn label="账号" prop="username"/>
|
||||
<ElTableColumn label="联系人" prop="nickname"/>
|
||||
<ElTableColumn label="身份类型" prop="identityCategoryTxt"/>
|
||||
<ElTableColumn label="组织信息" prop="orgId"/>
|
||||
<ElTableColumn label="企业信息" prop="orgId"/>
|
||||
<ElTableColumn label="客户姓名" prop="customerName"/>
|
||||
<ElTableColumn label="结算方式" prop="settlementWayTxt"/>
|
||||
<ElTableColumn label="是否管理员">
|
||||
|
|
|
|||
|
|
@ -8,18 +8,18 @@
|
|||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<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"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="客户姓名" prop="customerName">
|
||||
<ElInput v-model="formData.customerName" :disabled="status === 'view'" placeholder="客户姓名"/>
|
||||
<ElInput v-model="formData.customerName" placeholder="客户姓名"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="联系电话" prop="phone">
|
||||
<ElInput v-model="formData.phone" :disabled="status === 'view'" placeholder="联系电话"/>
|
||||
<ElInput v-model="formData.phone" placeholder="联系电话"/>
|
||||
</ElFormItem>
|
||||
<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"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
|
|
@ -37,6 +37,7 @@ import {
|
|||
identityCategory,
|
||||
settlementWay,
|
||||
} from '@/pages/cst/customer/constants.ts'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
|
|
@ -45,13 +46,13 @@ const props = withDefaults(defineProps<{
|
|||
research: () => {
|
||||
},
|
||||
})
|
||||
const formPanelIns = useTemplateRef<InstanceType<typeof AFormPanel>>('formPanel')
|
||||
const status = ref<'add' | 'view' | 'modify'>('add')
|
||||
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
|
||||
const status = ref<'add' | 'modify'>('add')
|
||||
const rules = reactive<FormRules<CustomerTypes.SearchCustomerResult>>({
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
userId: [ {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'} ],
|
||||
phone: [ {required: true, message: '请填写客户联系电话', trigger: 'blur'} ],
|
||||
settlementWay: [ {required: true, message: '请填写结算方式', trigger: 'blur'} ],
|
||||
|
|
@ -80,7 +81,7 @@ function doSubmit(data: CustomerTypes.SearchCustomerResult) {
|
|||
if (status.value === 'add') {
|
||||
return CustomerApi.add(data)
|
||||
.then(props.research)
|
||||
} else if (status.value === 'modify') {
|
||||
} else {
|
||||
return CustomerApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ declare global {
|
|||
userId?: string
|
||||
// 身份类型;多个身份多条数据,PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方
|
||||
identityCategory?: string
|
||||
// 组织信息 Id;cst_org.id
|
||||
// 企业信息 Id;cst_org.id
|
||||
orgId?: string
|
||||
// 客户姓名
|
||||
customerName?: string
|
||||
|
|
@ -17,7 +17,7 @@ declare global {
|
|||
phone?: string
|
||||
// 结算方式,YueJie-->月结、YuE-->余额、XianFu-->现付
|
||||
settlementWay?: string
|
||||
// 是否管理员;是否为当前的组织管理员,0-->否、1-->是
|
||||
// 是否管理员;是否为当前的企业管理员,0-->否、1-->是
|
||||
manager?: boolean
|
||||
// 创建人 Id;sys_user.id
|
||||
creatorId?: string
|
||||
|
|
@ -38,7 +38,7 @@ declare global {
|
|||
userId?: string
|
||||
// 身份类型;多个身份多条数据,PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方
|
||||
identityCategory?: string
|
||||
// 组织信息 Id;cst_org.id
|
||||
// 企业信息 Id;cst_org.id
|
||||
orgId?: string
|
||||
// 客户姓名
|
||||
customerName?: string
|
||||
|
|
@ -46,7 +46,7 @@ declare global {
|
|||
phone?: string
|
||||
// 结算方式,YueJie-->月结、YuE-->余额、XianFu-->现付
|
||||
settlementWay?: string
|
||||
// 是否管理员;是否为当前的组织管理员,0-->否、1-->是
|
||||
// 是否管理员;是否为当前的企业管理员,0-->否、1-->是
|
||||
manager?: boolean
|
||||
// 创建人 Id;sys_user.id
|
||||
creatorId?: string
|
||||
|
|
@ -67,7 +67,7 @@ declare global {
|
|||
userId?: string
|
||||
// 身份类型;多个身份多条数据,PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方
|
||||
identityCategory?: string
|
||||
// 组织信息 Id;cst_org.id
|
||||
// 企业信息 Id;cst_org.id
|
||||
orgId?: string
|
||||
// 客户姓名
|
||||
customerName?: string
|
||||
|
|
@ -75,7 +75,7 @@ declare global {
|
|||
phone?: string
|
||||
// 结算方式,YueJie-->月结、YuE-->余额、XianFu-->现付
|
||||
settlementWay?: string
|
||||
// 是否管理员;是否为当前的组织管理员,0-->否、1-->是
|
||||
// 是否管理员;是否为当前的企业管理员,0-->否、1-->是
|
||||
manager?: boolean
|
||||
// 创建人 Id;sys_user.id
|
||||
creatorId?: string
|
||||
|
|
@ -96,7 +96,7 @@ declare global {
|
|||
userId?: string
|
||||
// 身份类型;多个身份多条数据,PingTai-->平台、ChanFei-->产废方、QingYun-->清运方、XiaoNa-->消纳方、CaiGou-->采购方
|
||||
identityCategory?: string
|
||||
// 组织信息 Id;cst_org.id
|
||||
// 企业信息 Id;cst_org.id
|
||||
orgId?: string
|
||||
// 客户姓名
|
||||
customerName?: string
|
||||
|
|
@ -104,7 +104,7 @@ declare global {
|
|||
phone?: string
|
||||
// 结算方式,YueJie-->月结、YuE-->余额、XianFu-->现付
|
||||
settlementWay?: string
|
||||
// 是否管理员;是否为当前的组织管理员,0-->否、1-->是
|
||||
// 是否管理员;是否为当前的企业管理员,0-->否、1-->是
|
||||
manager?: boolean
|
||||
// 创建人 Id;sys_user.id
|
||||
creatorId?: string
|
||||
|
|
|
|||
|
|
@ -23,6 +23,14 @@
|
|||
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #simpleSearchFormItem="{searchForm}">
|
||||
<ElFormItem>
|
||||
<ElInput v-model="searchForm.driverName" placeholder="司机姓名"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem>
|
||||
<ElInput v-model="searchForm.phone" placeholder="手机号"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #columns>
|
||||
<ElTableColumn label="司机名称" prop="driverName"/>
|
||||
<ElTableColumn label="归属公司" prop="orgName"/>
|
||||
|
|
@ -34,7 +42,7 @@
|
|||
<ElTableColumn label="创建时间" prop="createTime"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime"/>
|
||||
</template>
|
||||
<DriverForm ref="driverForm" @edit-succ="research"/>
|
||||
<DriverForm ref="driverForm" :research="research"/>
|
||||
<DriverDetail ref="driverDetail" @edit-succ="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
|
@ -43,7 +51,8 @@
|
|||
import DriverApi from '@/pages/cst/driver/driver-api.ts'
|
||||
import DriverForm from '@/pages/cst/driver/DriverForm.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'
|
||||
|
||||
const driverDetailIns = useTemplateRef<InstanceType<typeof DriverDetail>>('driverDetail')
|
||||
|
|
|
|||
|
|
@ -1,204 +1,137 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="driverForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="归属用户 Id;sys_user.id" prop="userId">
|
||||
<ElInput
|
||||
v-model="formData.userId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属用户 Id;sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="归属客户 Id;cst_customer.id" prop="customerId">
|
||||
<ElInput
|
||||
v-model="formData.customerId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属客户 Id;cst_customer.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="归属公司 Id;cst_org.id" prop="orgId">
|
||||
<ElInput
|
||||
v-model="formData.orgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属公司 Id;cst_org.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="驾驶证编号" prop="drivingLicenceNo">
|
||||
<ElInput
|
||||
v-model="formData.drivingLicenceNo"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="驾驶证编号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="司机姓名" prop="driverName">
|
||||
<ElInput
|
||||
v-model="formData.driverName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="司机姓名"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="手机号" prop="phone">
|
||||
<ElInput
|
||||
v-model="formData.phone"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="手机号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="驾驶证图片" prop="drivingLicence">
|
||||
<ElInput
|
||||
v-model="formData.drivingLicence"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="驾驶证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="驾驶证有效期" prop="licenceStartTime">
|
||||
<ElInput
|
||||
v-model="formData.licenceStartTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="驾驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="驾驶证有效期" prop="licenceEndTime">
|
||||
<ElInput
|
||||
v-model="formData.licenceEndTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="驾驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="忙碌中" prop="busy">
|
||||
<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>
|
||||
<!-- <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>
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建司机信息' : '修改司机信息'"
|
||||
>
|
||||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<ElFormItem label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属用户 Id;sys_user.id" prop="userId">
|
||||
<ElInput
|
||||
v-model="formData.userId"
|
||||
placeholder="归属用户 Id;sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属客户 Id;cst_customer.id" prop="customerId">
|
||||
<ElInput
|
||||
v-model="formData.customerId"
|
||||
placeholder="归属客户 Id;cst_customer.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属公司 Id;cst_org.id" prop="orgId">
|
||||
<ElInput
|
||||
v-model="formData.orgId"
|
||||
placeholder="归属公司 Id;cst_org.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="驾驶证编号" prop="drivingLicenceNo">
|
||||
<ElInput
|
||||
v-model="formData.drivingLicenceNo"
|
||||
placeholder="驾驶证编号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="司机姓名" prop="driverName">
|
||||
<ElInput
|
||||
v-model="formData.driverName"
|
||||
placeholder="司机姓名"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="手机号" prop="phone">
|
||||
<ElInput
|
||||
v-model="formData.phone"
|
||||
placeholder="手机号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="驾驶证图片" prop="drivingLicence">
|
||||
<ElInput
|
||||
v-model="formData.drivingLicence"
|
||||
placeholder="驾驶证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="驾驶证有效期" prop="licenceStartTime">
|
||||
<ElInput
|
||||
v-model="formData.licenceStartTime"
|
||||
placeholder="驾驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="驾驶证有效期" prop="licenceEndTime">
|
||||
<ElInput
|
||||
v-model="formData.licenceEndTime"
|
||||
placeholder="驾驶证有效期"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import DriverApi from '@/pages/cst/driver/driver-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
|
||||
const emits = defineEmits(['editSucc'])
|
||||
const showDialog = ref(false)
|
||||
const submiting = ref(false)
|
||||
const status = ref<'add' | 'view' | 'modify'>('add')
|
||||
|
||||
const driverFormIns = useTemplateRef<FormInstance>('driverForm')
|
||||
|
||||
const formData = ref<DriverTypes.SearchDriverResult>({})
|
||||
const rules = reactive<FormRules<DriverTypes.SearchDriverResult>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
userId: [{ required: true, message: '请填写归属用户 Id;sys_user.id', trigger: 'blur' }],
|
||||
customerId: [{ required: true, message: '请填写归属客户 Id;cst_customer.id', trigger: 'blur' }],
|
||||
orgId: [{ required: true, message: '请填写归属公司 Id;cst_org.id', trigger: 'blur' }],
|
||||
drivingLicenceNo: [{ required: true, message: '请填写驾驶证编号', trigger: 'blur' }],
|
||||
driverName: [{ required: true, message: '请填写司机姓名', trigger: 'blur' }],
|
||||
phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }],
|
||||
drivingLicence: [{ required: true, message: '请填写驾驶证图片', trigger: 'blur' }],
|
||||
licenceStartTime: [{ required: true, message: '请填写驾驶证有效期', trigger: 'blur' }],
|
||||
licenceEndTime: [{ required: true, message: '请填写驾驶证有效期', trigger: 'blur' }],
|
||||
busy: [{ required: true, message: '请填写忙碌中', trigger: 'blur' }],
|
||||
creatorId: [{ 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' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除', trigger: 'blur' }],
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
research: () => {
|
||||
},
|
||||
})
|
||||
const rules = reactive<FormRules<DriverTypes.SearchDriverResult>>({
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
userId: [ {required: true, message: '请填写归属用户 Id;sys_user.id', trigger: 'blur'} ],
|
||||
customerId: [ {required: true, message: '请填写归属客户 Id;cst_customer.id', trigger: 'blur'} ],
|
||||
orgId: [ {required: true, message: '请填写归属公司 Id;cst_org.id', trigger: 'blur'} ],
|
||||
drivingLicenceNo: [ {required: true, message: '请填写驾驶证编号', trigger: 'blur'} ],
|
||||
driverName: [ {required: true, message: '请填写司机姓名', trigger: 'blur'} ],
|
||||
phone: [ {required: true, message: '请填写手机号', trigger: 'blur'} ],
|
||||
drivingLicence: [ {required: true, message: '请填写驾驶证图片', trigger: 'blur'} ],
|
||||
licenceStartTime: [ {required: true, message: '请填写驾驶证有效期', trigger: 'blur'} ],
|
||||
licenceEndTime: [ {required: true, message: '请填写驾驶证有效期', trigger: 'blur'} ],
|
||||
busy: [ {required: true, message: '请填写忙碌中', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {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() {
|
||||
formData.value = {}
|
||||
function detailsLoader(id?: string) {
|
||||
if (Strings.isBlank(id)) {
|
||||
status.value = 'add'
|
||||
return Promise.resolve()
|
||||
} else {
|
||||
status.value = 'modify'
|
||||
return DriverApi
|
||||
.detail(id!)
|
||||
.then(res => res.data)
|
||||
}
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === 'view') return
|
||||
submiting.value = true
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(driverFormIns, () => DriverApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
function doSubmit(data: DriverTypes.SearchDriverResult) {
|
||||
if (status.value === 'add') {
|
||||
return DriverApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(driverFormIns, () => DriverApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
return DriverApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: DriverTypes.SearchDriverResult = {}) {
|
||||
showDialog.value = true
|
||||
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
|
||||
}
|
||||
}
|
||||
open(data?: DriverTypes.SearchDriverResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
<ElFormItem label="统一社会信用代码">
|
||||
<ElInput v-model="searchForm.uscc" placeholder="统一社会信用代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="组织名称">
|
||||
<ElInput v-model="searchForm.orgName" placeholder="组织名称"/>
|
||||
<ElFormItem label="企业名称">
|
||||
<ElInput v-model="searchForm.orgName" placeholder="企业名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="法人名称">
|
||||
<ElInput v-model="searchForm.legalRepresentative" placeholder="法人名称"/>
|
||||
|
|
@ -26,11 +26,19 @@
|
|||
<ElInput v-model="searchForm.address" placeholder="详细地址"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #simpleSearchFormItem="{searchForm}">
|
||||
<ElFormItem>
|
||||
<ElInput v-model="searchForm.uscc" placeholder="统一社会信用代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem>
|
||||
<ElInput v-model="searchForm.orgName" placeholder="企业名称"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #columns>
|
||||
<!-- ,GeTiHu-个体户、QiYe--企业 -->
|
||||
<ElTableColumn label="主体类型" prop="orgCategoryTxt"/>
|
||||
<!-- <ElTableColumn label="统一社会信用代码" prop="uscc" /> -->
|
||||
<ElTableColumn label="组织名称" prop="orgName" width="140"/>
|
||||
<ElTableColumn label="企业名称" prop="orgName" width="140"/>
|
||||
<ElTableColumn label="营业执照" width="100px">
|
||||
<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"/>
|
||||
|
|
@ -60,7 +68,7 @@
|
|||
<ElTableColumn label="创建时间" prop="createTime" width="140"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime" width="140"/>
|
||||
</template>
|
||||
<OrgForm ref="orgForm" @edit-succ="research"/>
|
||||
<OrgForm ref="orgForm" :research="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
||||
|
|
@ -68,7 +76,8 @@
|
|||
import OrgApi from '@/pages/cst/org/org-api.ts'
|
||||
import OrgForm from '@/pages/cst/org/OrgForm.vue'
|
||||
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'
|
||||
|
||||
const formPageIns = useTemplateRef<ComponentExposed<typeof FormPage>>('formPage')
|
||||
|
|
|
|||
|
|
@ -1,290 +1,242 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="orgForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="主体类型,GeTiHu-->个体户、QiYe-->企业" prop="orgCategory">
|
||||
<ElInput
|
||||
v-model="formData.orgCategory"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="主体类型,GeTiHu-->个体户、QiYe-->企业"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="统一社会信用代码" prop="uscc">
|
||||
<ElInput
|
||||
v-model="formData.uscc"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="统一社会信用代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="组织名称" prop="orgName">
|
||||
<ElInput
|
||||
v-model="formData.orgName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="组织名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="营业执照" prop="businessLicense">
|
||||
<ElInput
|
||||
v-model="formData.businessLicense"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="营业执照"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="营业执照有效期" prop="licenseStartTime">
|
||||
<ElInput
|
||||
v-model="formData.licenseStartTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="营业执照有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="营业执照有效期" prop="licenseEndTime">
|
||||
<ElInput
|
||||
v-model="formData.licenseEndTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="营业执照有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="法人名称" prop="legalRepresentative">
|
||||
<ElInput
|
||||
v-model="formData.legalRepresentative"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="法人名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="法人身份证号" prop="idcard">
|
||||
<ElInput
|
||||
v-model="formData.idcard"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="法人身份证号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="法人身份证有效期" prop="idcardStartTime">
|
||||
<ElInput
|
||||
v-model="formData.idcardStartTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="法人身份证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="法人身份证有效期" prop="idcardEndTime">
|
||||
<ElInput
|
||||
v-model="formData.idcardEndTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="法人身份证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="法人身份证正面" prop="idcardFront">
|
||||
<ElInput
|
||||
v-model="formData.idcardFront"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="法人身份证正面"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="法人身份证反面" prop="idcardBack">
|
||||
<ElInput
|
||||
v-model="formData.idcardBack"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="法人身份证反面"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="省;代码" prop="province">
|
||||
<ElInput
|
||||
v-model="formData.province"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="省;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="市;代码" prop="city">
|
||||
<ElInput
|
||||
v-model="formData.city"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="市;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="区县;代码" prop="area">
|
||||
<ElInput
|
||||
v-model="formData.area"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="区县;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="乡镇街道;代码" prop="town">
|
||||
<ElInput
|
||||
v-model="formData.town"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="乡镇街道;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="省;名称" prop="provinceName">
|
||||
<ElInput
|
||||
v-model="formData.provinceName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="省;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="市;名称" prop="cityName">
|
||||
<ElInput
|
||||
v-model="formData.cityName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="市;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="区县;名称" prop="areaName">
|
||||
<ElInput
|
||||
v-model="formData.areaName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="区县;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="乡镇街道;名称" prop="townName">
|
||||
<ElInput
|
||||
v-model="formData.townName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="乡镇街道;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="详细地址" prop="address">
|
||||
<ElInput
|
||||
v-model="formData.address"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="详细地址"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="经度" prop="lng">
|
||||
<ElInput
|
||||
v-model="formData.lng"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="经度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="纬度" prop="lat">
|
||||
<ElInput
|
||||
v-model="formData.lat"
|
||||
: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>
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建企业信息' : '修改企业信息'"
|
||||
>
|
||||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<ElFormItem label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="主体类型,GeTiHu-->个体户、QiYe-->企业" prop="orgCategory">
|
||||
<ElInput
|
||||
v-model="formData.orgCategory"
|
||||
placeholder="主体类型,GeTiHu-->个体户、QiYe-->企业"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="统一社会信用代码" prop="uscc">
|
||||
<ElInput
|
||||
v-model="formData.uscc"
|
||||
placeholder="统一社会信用代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="企业名称" prop="orgName">
|
||||
<ElInput
|
||||
v-model="formData.orgName"
|
||||
placeholder="企业名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="营业执照" prop="businessLicense">
|
||||
<ElInput
|
||||
v-model="formData.businessLicense"
|
||||
placeholder="营业执照"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="营业执照有效期" prop="licenseStartTime">
|
||||
<ElInput
|
||||
v-model="formData.licenseStartTime"
|
||||
placeholder="营业执照有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="营业执照有效期" prop="licenseEndTime">
|
||||
<ElInput
|
||||
v-model="formData.licenseEndTime"
|
||||
placeholder="营业执照有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="法人名称" prop="legalRepresentative">
|
||||
<ElInput
|
||||
v-model="formData.legalRepresentative"
|
||||
placeholder="法人名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="法人身份证号" prop="idcard">
|
||||
<ElInput
|
||||
v-model="formData.idcard"
|
||||
placeholder="法人身份证号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="法人身份证有效期" prop="idcardStartTime">
|
||||
<ElInput
|
||||
v-model="formData.idcardStartTime"
|
||||
placeholder="法人身份证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="法人身份证有效期" prop="idcardEndTime">
|
||||
<ElInput
|
||||
v-model="formData.idcardEndTime"
|
||||
placeholder="法人身份证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="法人身份证正面" prop="idcardFront">
|
||||
<ElInput
|
||||
v-model="formData.idcardFront"
|
||||
placeholder="法人身份证正面"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="法人身份证反面" prop="idcardBack">
|
||||
<ElInput
|
||||
v-model="formData.idcardBack"
|
||||
placeholder="法人身份证反面"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="省;代码" prop="province">
|
||||
<ElInput
|
||||
v-model="formData.province"
|
||||
placeholder="省;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="市;代码" prop="city">
|
||||
<ElInput
|
||||
v-model="formData.city"
|
||||
placeholder="市;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="区县;代码" prop="area">
|
||||
<ElInput
|
||||
v-model="formData.area"
|
||||
placeholder="区县;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道;代码" prop="town">
|
||||
<ElInput
|
||||
v-model="formData.town"
|
||||
placeholder="乡镇街道;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="省;名称" prop="provinceName">
|
||||
<ElInput
|
||||
v-model="formData.provinceName"
|
||||
placeholder="省;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="市;名称" prop="cityName">
|
||||
<ElInput
|
||||
v-model="formData.cityName"
|
||||
placeholder="市;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="区县;名称" prop="areaName">
|
||||
<ElInput
|
||||
v-model="formData.areaName"
|
||||
placeholder="区县;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道;名称" prop="townName">
|
||||
<ElInput
|
||||
v-model="formData.townName"
|
||||
placeholder="乡镇街道;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="详细地址" prop="address">
|
||||
<ElInput
|
||||
v-model="formData.address"
|
||||
placeholder="详细地址"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="经度" prop="lng">
|
||||
<ElInput
|
||||
v-model="formData.lng"
|
||||
placeholder="经度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="纬度" prop="lat">
|
||||
<ElInput
|
||||
v-model="formData.lat"
|
||||
placeholder="纬度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="创建人 Id; sys_user.id" prop="creatorId">
|
||||
<ElInput
|
||||
v-model="formData.creatorId"
|
||||
placeholder="创建人 Id; sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改人 Id; sys_user.id" prop="modifierId">
|
||||
<ElInput
|
||||
v-model="formData.modifierId"
|
||||
placeholder="修改人 Id; sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="创建时间" prop="createTime">
|
||||
<ElInput
|
||||
v-model="formData.createTime"
|
||||
placeholder="创建时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改时间" prop="modifyTime">
|
||||
<ElInput
|
||||
v-model="formData.modifyTime"
|
||||
placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import OrgApi from '@/pages/cst/org/org-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import Utils from '@/common/utils'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
import OrgApi from '@/pages/cst/org/org-api.ts'
|
||||
|
||||
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>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
orgCategory: [{ required: true, message: '请填写主体类型,GeTiHu-->个体户、QiYe-->企业', trigger: 'blur' }],
|
||||
uscc: [{ required: true, message: '请填写统一社会信用代码', trigger: 'blur' }],
|
||||
orgName: [{ required: true, message: '请填写组织名称', trigger: 'blur' }],
|
||||
businessLicense: [{ required: true, message: '请填写营业执照', trigger: 'blur' }],
|
||||
licenseStartTime: [{ required: true, message: '请填写营业执照有效期', trigger: 'blur' }],
|
||||
licenseEndTime: [{ required: true, message: '请填写营业执照有效期', trigger: 'blur' }],
|
||||
legalRepresentative: [{ required: true, message: '请填写法人名称', trigger: 'blur' }],
|
||||
idcard: [{ required: true, message: '请填写法人身份证号', trigger: 'blur' }],
|
||||
idcardStartTime: [{ required: true, message: '请填写法人身份证有效期', trigger: 'blur' }],
|
||||
idcardEndTime: [{ required: true, message: '请填写法人身份证有效期', trigger: 'blur' }],
|
||||
idcardFront: [{ required: true, message: '请填写法人身份证正面', trigger: 'blur' }],
|
||||
idcardBack: [{ required: true, message: '请填写法人身份证反面', trigger: 'blur' }],
|
||||
province: [{ required: true, message: '请填写省;代码', trigger: 'blur' }],
|
||||
city: [{ required: true, message: '请填写市;代码', trigger: 'blur' }],
|
||||
area: [{ required: true, message: '请填写区县;代码', trigger: 'blur' }],
|
||||
town: [{ required: true, message: '请填写乡镇街道;代码', trigger: 'blur' }],
|
||||
provinceName: [{ required: true, message: '请填写省;名称', trigger: 'blur' }],
|
||||
cityName: [{ required: true, message: '请填写市;名称', trigger: 'blur' }],
|
||||
areaName: [{ required: true, message: '请填写区县;名称', trigger: 'blur' }],
|
||||
townName: [{ required: true, message: '请填写乡镇街道;名称', trigger: 'blur' }],
|
||||
address: [{ required: true, message: '请填写详细地址', trigger: 'blur' }],
|
||||
lng: [{ required: true, message: '请填写经度', trigger: 'blur' }],
|
||||
lat: [{ required: true, message: '请填写纬度', trigger: 'blur' }],
|
||||
creatorId: [{ 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' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur' }],
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
orgCategory: [ {required: true, message: '请填写主体类型,GeTiHu-->个体户、QiYe-->企业', trigger: 'blur'} ],
|
||||
uscc: [ {required: true, message: '请填写统一社会信用代码', trigger: 'blur'} ],
|
||||
orgName: [ {required: true, message: '请填写企业名称', trigger: 'blur'} ],
|
||||
businessLicense: [ {required: true, message: '请填写营业执照', trigger: 'blur'} ],
|
||||
licenseStartTime: [ {required: true, message: '请填写营业执照有效期', trigger: 'blur'} ],
|
||||
licenseEndTime: [ {required: true, message: '请填写营业执照有效期', trigger: 'blur'} ],
|
||||
legalRepresentative: [ {required: true, message: '请填写法人名称', trigger: 'blur'} ],
|
||||
idcard: [ {required: true, message: '请填写法人身份证号', trigger: 'blur'} ],
|
||||
idcardStartTime: [ {required: true, message: '请填写法人身份证有效期', trigger: 'blur'} ],
|
||||
idcardEndTime: [ {required: true, message: '请填写法人身份证有效期', trigger: 'blur'} ],
|
||||
idcardFront: [ {required: true, message: '请填写法人身份证正面', trigger: 'blur'} ],
|
||||
idcardBack: [ {required: true, message: '请填写法人身份证反面', trigger: 'blur'} ],
|
||||
province: [ {required: true, message: '请填写省;代码', trigger: 'blur'} ],
|
||||
city: [ {required: true, message: '请填写市;代码', trigger: 'blur'} ],
|
||||
area: [ {required: true, message: '请填写区县;代码', trigger: 'blur'} ],
|
||||
town: [ {required: true, message: '请填写乡镇街道;代码', trigger: 'blur'} ],
|
||||
provinceName: [ {required: true, message: '请填写省;名称', trigger: 'blur'} ],
|
||||
cityName: [ {required: true, message: '请填写市;名称', trigger: 'blur'} ],
|
||||
areaName: [ {required: true, message: '请填写区县;名称', trigger: 'blur'} ],
|
||||
townName: [ {required: true, message: '请填写乡镇街道;名称', trigger: 'blur'} ],
|
||||
address: [ {required: true, message: '请填写详细地址', trigger: 'blur'} ],
|
||||
lng: [ {required: true, message: '请填写经度', trigger: 'blur'} ],
|
||||
lat: [ {required: true, message: '请填写纬度', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
|
||||
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
|
||||
})
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.$reset()
|
||||
const props = withDefaults(defineProps<{
|
||||
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() {
|
||||
if (status.value === 'view') return
|
||||
submiting.value = true
|
||||
if (formData.id != null) {
|
||||
FormUtil.submit(orgFormIns, () => OrgApi.modify(formData))
|
||||
.then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
function doSubmit(data: OrgTypes.SearchOrgResult) {
|
||||
if (status.value === 'add') {
|
||||
return OrgApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(orgFormIns, () => OrgApi.add(formData))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
return OrgApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: any = {}) {
|
||||
showDialog.value = true
|
||||
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)
|
||||
}
|
||||
}
|
||||
open(data?: OrgTypes.SearchOrgResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ declare global {
|
|||
orgCategory?: string
|
||||
// 统一社会信用代码
|
||||
uscc?: string
|
||||
// 组织名称
|
||||
// 企业名称
|
||||
orgName?: string
|
||||
// 营业执照
|
||||
businessLicense?: string
|
||||
|
|
@ -70,7 +70,7 @@ declare global {
|
|||
orgCategory?: string
|
||||
// 统一社会信用代码
|
||||
uscc?: string
|
||||
// 组织名称
|
||||
// 企业名称
|
||||
orgName?: string
|
||||
// 营业执照
|
||||
businessLicense?: string
|
||||
|
|
@ -131,7 +131,7 @@ declare global {
|
|||
orgCategory?: string
|
||||
// 统一社会信用代码
|
||||
uscc?: string
|
||||
// 组织名称
|
||||
// 企业名称
|
||||
orgName?: string
|
||||
// 营业执照
|
||||
businessLicense?: string
|
||||
|
|
@ -192,7 +192,7 @@ declare global {
|
|||
orgCategory?: string
|
||||
// 统一社会信用代码
|
||||
uscc?: string
|
||||
// 组织名称
|
||||
// 企业名称
|
||||
orgName?: string
|
||||
// 营业执照
|
||||
businessLicense?: string
|
||||
|
|
|
|||
|
|
@ -25,11 +25,18 @@
|
|||
placeholder="详细地址"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #simpleSearchFormItem="{ searchForm }">
|
||||
<ElFormItem>
|
||||
<ElInput
|
||||
v-model="searchForm.projectName"
|
||||
placeholder="项目名称"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #columns>
|
||||
<ElTableColumn label="项目名称" prop="projectName"/>
|
||||
<!-- <ElTableColumn label="合同图片" prop="contractPicture"/> -->
|
||||
<ElTableColumn label="运输方组织" prop="transOrgInfo.orgName"/>
|
||||
<ElTableColumn label="产废方/购买方组织" prop="fringeOrgInfo.orgName"/>
|
||||
<ElTableColumn label="运输方企业" prop="transOrgInfo.orgName"/>
|
||||
<ElTableColumn label="产废方/购买方企业" prop="fringeOrgInfo.orgName"/>
|
||||
<!-- <ElTableColumn label="市" prop="cityName"/> -->
|
||||
<ElTableColumn label="区县" prop="areaName"/>
|
||||
<ElTableColumn label="乡镇街道" prop="townName"/>
|
||||
|
|
@ -48,7 +55,8 @@
|
|||
import ProjectApi from '@/pages/cst/project/project-api.ts'
|
||||
import ProjectDetail from '@/pages/cst/project/ProjectDetail.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'
|
||||
|
||||
const formPageIns = useTemplateRef<ComponentExposed<typeof FormPage>>('formPage')
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
<el-descriptions-item label="项目名称">
|
||||
{{ formData.projectName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="运输方组织">
|
||||
<el-descriptions-item label="运输方企业">
|
||||
{{ formData?.transOrgInfo?.orgName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="产废方/购买方组织">
|
||||
<el-descriptions-item label="产废方/购买方企业">
|
||||
{{ formData.fringeOrgInfo?.orgName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="区县">
|
||||
|
|
|
|||
|
|
@ -1,261 +1,192 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="projectForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="项目名称" prop="projectName">
|
||||
<ElInput
|
||||
v-model="formData.projectName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="项目名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="合同图片" prop="contractPicture">
|
||||
<ElInput
|
||||
v-model="formData.contractPicture"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合同图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="运输方客户 Id" prop="transCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.transCustomerId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="运输方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="运输方组织 Id" prop="transOrgId">
|
||||
<ElInput
|
||||
v-model="formData.transOrgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="运输方组织 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="产废方/购买方客户 Id" prop="fringeCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.fringeCustomerId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="产废方/购买方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="产废方/购买方组织 Id" prop="fringeOrgId">
|
||||
<ElInput
|
||||
v-model="formData.fringeOrgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="产废方/购买方组织 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="省;代码" prop="province">
|
||||
<ElInput
|
||||
v-model="formData.province"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="省;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="市;代码" prop="city">
|
||||
<ElInput
|
||||
v-model="formData.city"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="市;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="区县;代码" prop="area">
|
||||
<ElInput
|
||||
v-model="formData.area"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="区县;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="乡镇街道;代码" prop="town">
|
||||
<ElInput
|
||||
v-model="formData.town"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="乡镇街道;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="省;名称" prop="provinceName">
|
||||
<ElInput
|
||||
v-model="formData.provinceName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="省;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="市;名称" prop="cityName">
|
||||
<ElInput
|
||||
v-model="formData.cityName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="市;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="区县;名称" prop="areaName">
|
||||
<ElInput
|
||||
v-model="formData.areaName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="区县;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="乡镇街道;名称" prop="townName">
|
||||
<ElInput
|
||||
v-model="formData.townName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="乡镇街道;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="详细地址" prop="address">
|
||||
<ElInput
|
||||
v-model="formData.address"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="详细地址"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="经度" prop="lng">
|
||||
<ElInput
|
||||
v-model="formData.lng"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="经度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="纬度" prop="lat">
|
||||
<ElInput
|
||||
v-model="formData.lat"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="纬度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="合同有效期" prop="contractStartDate">
|
||||
<ElInput
|
||||
v-model="formData.contractStartDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合同有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="合同有效期" prop="contractEndDate">
|
||||
<ElInput
|
||||
v-model="formData.contractEndDate"
|
||||
: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>
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建项目' : '修改项目'"
|
||||
>
|
||||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<ElFormItem label="项目名称" prop="projectName">
|
||||
<ElInput
|
||||
v-model="formData.projectName"
|
||||
placeholder="项目名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合同图片" prop="contractPicture">
|
||||
<ElInput
|
||||
v-model="formData.contractPicture"
|
||||
placeholder="合同图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="运输方客户 Id" prop="transCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.transCustomerId"
|
||||
placeholder="运输方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="运输方企业 Id" prop="transOrgId">
|
||||
<ElInput
|
||||
v-model="formData.transOrgId"
|
||||
placeholder="运输方企业 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产废方/购买方客户 Id" prop="fringeCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.fringeCustomerId"
|
||||
placeholder="产废方/购买方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产废方/购买方企业 Id" prop="fringeOrgId">
|
||||
<ElInput
|
||||
v-model="formData.fringeOrgId"
|
||||
placeholder="产废方/购买方企业 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="省;代码" prop="province">
|
||||
<ElInput
|
||||
v-model="formData.province"
|
||||
placeholder="省;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="市;代码" prop="city">
|
||||
<ElInput
|
||||
v-model="formData.city"
|
||||
placeholder="市;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="区县;代码" prop="area">
|
||||
<ElInput
|
||||
v-model="formData.area"
|
||||
placeholder="区县;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道;代码" prop="town">
|
||||
<ElInput
|
||||
v-model="formData.town"
|
||||
placeholder="乡镇街道;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="省;名称" prop="provinceName">
|
||||
<ElInput
|
||||
v-model="formData.provinceName"
|
||||
placeholder="省;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="市;名称" prop="cityName">
|
||||
<ElInput
|
||||
v-model="formData.cityName"
|
||||
placeholder="市;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="区县;名称" prop="areaName">
|
||||
<ElInput
|
||||
v-model="formData.areaName"
|
||||
placeholder="区县;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道;名称" prop="townName">
|
||||
<ElInput
|
||||
v-model="formData.townName"
|
||||
placeholder="乡镇街道;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="详细地址" prop="address">
|
||||
<ElInput
|
||||
v-model="formData.address"
|
||||
placeholder="详细地址"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="经度" prop="lng">
|
||||
<ElInput
|
||||
v-model="formData.lng"
|
||||
placeholder="经度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="纬度" prop="lat">
|
||||
<ElInput
|
||||
v-model="formData.lat"
|
||||
placeholder="纬度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合同有效期" prop="contractStartDate">
|
||||
<ElInput
|
||||
v-model="formData.contractStartDate"
|
||||
placeholder="合同有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合同有效期" prop="contractEndDate">
|
||||
<ElInput
|
||||
v-model="formData.contractEndDate"
|
||||
placeholder="合同有效期"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import ProjectApi from '@/pages/cst/project/project-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
|
||||
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>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
projectName: [{ required: true, message: '请填写项目名称', trigger: 'blur' }],
|
||||
contractPicture: [{ required: true, message: '请填写合同图片', trigger: 'blur' }],
|
||||
transCustomerId: [{ required: true, message: '请填写运输方客户 Id', trigger: 'blur' }],
|
||||
transOrgId: [{ required: true, message: '请填写运输方组织 Id', trigger: 'blur' }],
|
||||
fringeCustomerId: [{ required: true, message: '请填写产废方/购买方客户 Id', trigger: 'blur' }],
|
||||
fringeOrgId: [{ required: true, message: '请填写产废方/购买方组织 Id', trigger: 'blur' }],
|
||||
province: [{ required: true, message: '请填写省;代码', trigger: 'blur' }],
|
||||
city: [{ required: true, message: '请填写市;代码', trigger: 'blur' }],
|
||||
area: [{ required: true, message: '请填写区县;代码', trigger: 'blur' }],
|
||||
town: [{ required: true, message: '请填写乡镇街道;代码', trigger: 'blur' }],
|
||||
provinceName: [{ required: true, message: '请填写省;名称', trigger: 'blur' }],
|
||||
cityName: [{ required: true, message: '请填写市;名称', trigger: 'blur' }],
|
||||
areaName: [{ required: true, message: '请填写区县;名称', trigger: 'blur' }],
|
||||
townName: [{ required: true, message: '请填写乡镇街道;名称', trigger: 'blur' }],
|
||||
address: [{ required: true, message: '请填写详细地址', trigger: 'blur' }],
|
||||
lng: [{ required: true, message: '请填写经度', trigger: 'blur' }],
|
||||
lat: [{ required: true, message: '请填写纬度', trigger: 'blur' }],
|
||||
contractStartDate: [{ required: true, message: '请填写合同有效期', trigger: 'blur' }],
|
||||
contractEndDate: [{ required: true, message: '请填写合同有效期', trigger: 'blur' }],
|
||||
creatorId: [{ 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' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur' }],
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
projectName: [ {required: true, message: '请填写项目名称', trigger: 'blur'} ],
|
||||
contractPicture: [ {required: true, message: '请填写合同图片', trigger: 'blur'} ],
|
||||
transCustomerId: [ {required: true, message: '请填写运输方客户 Id', trigger: 'blur'} ],
|
||||
transOrgId: [ {required: true, message: '请填写运输方企业 Id', trigger: 'blur'} ],
|
||||
fringeCustomerId: [ {required: true, message: '请填写产废方/购买方客户 Id', trigger: 'blur'} ],
|
||||
fringeOrgId: [ {required: true, message: '请填写产废方/购买方企业 Id', trigger: 'blur'} ],
|
||||
province: [ {required: true, message: '请填写省;代码', trigger: 'blur'} ],
|
||||
city: [ {required: true, message: '请填写市;代码', trigger: 'blur'} ],
|
||||
area: [ {required: true, message: '请填写区县;代码', trigger: 'blur'} ],
|
||||
town: [ {required: true, message: '请填写乡镇街道;代码', trigger: 'blur'} ],
|
||||
provinceName: [ {required: true, message: '请填写省;名称', trigger: 'blur'} ],
|
||||
cityName: [ {required: true, message: '请填写市;名称', trigger: 'blur'} ],
|
||||
areaName: [ {required: true, message: '请填写区县;名称', trigger: 'blur'} ],
|
||||
townName: [ {required: true, message: '请填写乡镇街道;名称', trigger: 'blur'} ],
|
||||
address: [ {required: true, message: '请填写详细地址', trigger: 'blur'} ],
|
||||
lng: [ {required: true, message: '请填写经度', trigger: 'blur'} ],
|
||||
lat: [ {required: true, message: '请填写纬度', trigger: 'blur'} ],
|
||||
contractStartDate: [ {required: true, message: '请填写合同有效期', trigger: 'blur'} ],
|
||||
contractEndDate: [ {required: true, message: '请填写合同有效期', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
|
||||
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
|
||||
})
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.value = {}
|
||||
const props = withDefaults(defineProps<{
|
||||
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() {
|
||||
if (status.value === 'view') return
|
||||
submiting.value = true
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(projectFormIns, () => ProjectApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
function doSubmit(data: ProjectTypes.SearchProjectResult) {
|
||||
if (status.value === 'add') {
|
||||
return ProjectApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(projectFormIns, () => ProjectApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
return ProjectApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: ProjectTypes.SearchProjectResult = {}) {
|
||||
showDialog.value = true
|
||||
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
|
||||
}
|
||||
}
|
||||
open(data?: ProjectTypes.SearchProjectResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@ declare global {
|
|||
contractPicture?: string;
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string;
|
||||
// 运输方组织 Id
|
||||
// 运输方企业 Id
|
||||
transOrgId?: string;
|
||||
// 产废方/购买方客户 Id
|
||||
fringeCustomerId?: string;
|
||||
// 产废方/购买方组织 Id
|
||||
// 产废方/购买方企业 Id
|
||||
fringeOrgId?: string;
|
||||
// 省;代码
|
||||
province?: string;
|
||||
|
|
@ -65,11 +65,11 @@ declare global {
|
|||
contractPicture?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
// 运输方组织 Id
|
||||
// 运输方企业 Id
|
||||
transOrgId?: string
|
||||
// 产废方/购买方客户 Id
|
||||
fringeCustomerId?: string
|
||||
// 产废方/购买方组织 Id
|
||||
// 产废方/购买方企业 Id
|
||||
fringeOrgId?: string
|
||||
// 省;代码
|
||||
province?: string
|
||||
|
|
@ -118,11 +118,11 @@ declare global {
|
|||
contractPicture?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
// 运输方组织 Id
|
||||
// 运输方企业 Id
|
||||
transOrgId?: string
|
||||
// 产废方/购买方客户 Id
|
||||
fringeCustomerId?: string
|
||||
// 产废方/购买方组织 Id
|
||||
// 产废方/购买方企业 Id
|
||||
fringeOrgId?: string
|
||||
// 省;代码
|
||||
province?: string
|
||||
|
|
@ -171,11 +171,11 @@ declare global {
|
|||
contractPicture?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
// 运输方组织 Id
|
||||
// 运输方企业 Id
|
||||
transOrgId?: string
|
||||
// 产废方/购买方客户 Id
|
||||
fringeCustomerId?: string
|
||||
// 产废方/购买方组织 Id
|
||||
// 产废方/购买方企业 Id
|
||||
fringeOrgId?: string
|
||||
// 省;代码
|
||||
province?: string
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
<ElTableColumn label="创建时间" prop="createTime" width="170px"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime" width="170px"/>
|
||||
</template>
|
||||
<StationForm ref="stationForm" @edit-succ="research"/>
|
||||
<StationForm ref="stationForm" :research="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,238 +1,126 @@
|
|||
<template>
|
||||
<!-- destroy-on-close -->
|
||||
<ElDialog v-model="showDialog" :close-on-click-modal="false" width="fit-content" @close="dialogCloseHandler">
|
||||
<ElForm :model="formData" :rules="rules" ref="stationForm" class="form-panel" label-width="auto" style="width: 600px">
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
: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" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label="站点名称" prop="stationName">
|
||||
<ElInput v-model="formData.stationName" placeholder="站点名称"/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="省;代码" prop="province">
|
||||
<ElInput v-model="formData.province" placeholder="省;代码" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="市;代码" prop="city">
|
||||
<ElInput v-model="formData.city" placeholder="市;代码" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="区县;代码" prop="area">
|
||||
<ElInput v-model="formData.area" placeholder="区县;代码" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道;代码" prop="town">
|
||||
<ElInput v-model="formData.town" placeholder="乡镇街道;代码" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="详细地址" prop="address">
|
||||
</ElFormItem>
|
||||
<ElFormItem label="省" prop="provinceName">
|
||||
<ElInput v-model="formData.provinceName" placeholder="省"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="市" prop="cityName">
|
||||
<ElInput v-model="formData.cityName" placeholder="市"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="区县" prop="areaName">
|
||||
<ElInput v-model="formData.areaName" placeholder="区县"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道" prop="townName">
|
||||
<ElInput v-model="formData.townName" placeholder="乡镇街道"/>
|
||||
</ElFormItem>
|
||||
|
||||
<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 label-width="90" label="站点名称" prop="stationName">
|
||||
<ElInput v-model="formData.stationName" :disabled="status === 'view'" placeholder="站点名称" />
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="省;代码" prop="province">
|
||||
<ElInput v-model="formData.province" :disabled="status === 'view'" placeholder="省;代码" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="市;代码" prop="city">
|
||||
<ElInput v-model="formData.city" :disabled="status === 'view'" placeholder="市;代码" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="区县;代码" prop="area">
|
||||
<ElInput v-model="formData.area" :disabled="status === 'view'" placeholder="区县;代码" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="乡镇街道;代码" prop="town">
|
||||
<ElInput v-model="formData.town" :disabled="status === 'view'" placeholder="乡镇街道;代码" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" 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 label-width="90" label="省" prop="provinceName">
|
||||
<ElInput v-model="formData.provinceName" :disabled="status === 'view'" placeholder="省" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="市" prop="cityName">
|
||||
<ElInput v-model="formData.cityName" :disabled="status === 'view'" placeholder="市" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="区县" prop="areaName">
|
||||
<ElInput v-model="formData.areaName" :disabled="status === 'view'" placeholder="区县" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="乡镇街道" prop="townName">
|
||||
<ElInput v-model="formData.townName" :disabled="status === 'view'" placeholder="乡镇街道" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="经度" prop="lng">
|
||||
<ElInput v-model="formData.lng" placeholder="经度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="纬度" prop="lat">
|
||||
<ElInput v-model="formData.lat" placeholder="纬度"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="经度" prop="lng">
|
||||
<ElInput v-model="formData.lng" :disabled="status === 'view'" placeholder="经度" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="纬度" prop="lat">
|
||||
<ElInput v-model="formData.lat" :disabled="status === 'view'" placeholder="纬度" />
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
<div id="container" style="width: 100%; height: 400px"></div>
|
||||
|
||||
<div id="container" style="width: 100%; height: 400px"></div>
|
||||
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">{{ status === "view" ? "关闭" : "取消" }}</ElButton>
|
||||
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler">提交</ElButton>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import StationApi from "@/pages/cst/station/station-api.ts";
|
||||
import Strings from "@/common/utils/strings.ts";
|
||||
import FormUtil from "@/common/utils/formUtil.ts";
|
||||
import Utils from "@/common/utils";
|
||||
import { ElMessage, type FormInstance, type FormRules } from "element-plus";
|
||||
import { geocoder, init, latLng, marker, search } from "./map.ts";
|
||||
import OrgApi from "@/pages/cst/org/org-api.ts";
|
||||
import StationApi from '@/pages/cst/station/station-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
|
||||
const emits = defineEmits(["editSucc"]);
|
||||
const showDialog = ref(false);
|
||||
const submiting = ref(false);
|
||||
const status = ref<"add" | "view" | "modify">("add");
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
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>>({
|
||||
id: [{ required: true, message: "请填写Id", trigger: "blur" }],
|
||||
orgId: [{ required: true, message: "请填写组织信息 Id", trigger: "blur" }],
|
||||
stationName: [{ required: true, message: "请填写站点名称", trigger: "blur" }],
|
||||
province: [{ required: true, message: "请填写省;代码", trigger: "blur" }],
|
||||
city: [{ required: true, message: "请填写市;代码", trigger: "blur" }],
|
||||
area: [{ required: true, message: "请填写区县;代码", trigger: "blur" }],
|
||||
town: [{ required: true, message: "请填写乡镇街道;代码", trigger: "blur" }],
|
||||
provinceName: [{ required: true, message: "请填写省", trigger: "blur" }],
|
||||
cityName: [{ required: true, message: "请填写市", trigger: "blur" }],
|
||||
areaName: [{ required: true, message: "请填写区县", trigger: "blur" }],
|
||||
townName: [{ required: true, message: "请填写乡镇街道", trigger: "blur" }],
|
||||
address: [{ required: true, message: "请填写详细地址", trigger: "blur" }],
|
||||
lng: [{ required: true, message: "请填写经度", trigger: "blur" }],
|
||||
lat: [{ required: true, message: "请填写纬度", trigger: "blur" }],
|
||||
creatorId: [{ required: true, message: "请填写创建人", trigger: "blur" }],
|
||||
modifierId: [{ required: true, message: "请填写修改人", trigger: "blur" }],
|
||||
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }],
|
||||
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }],
|
||||
deleted: [{ required: true, message: "请填写是否删除", trigger: "blur" }],
|
||||
});
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
orgId: [ {required: true, message: '请填写企业信息 Id', trigger: 'blur'} ],
|
||||
stationName: [ {required: true, message: '请填写站点名称', trigger: 'blur'} ],
|
||||
province: [ {required: true, message: '请填写省;代码', trigger: 'blur'} ],
|
||||
city: [ {required: true, message: '请填写市;代码', trigger: 'blur'} ],
|
||||
area: [ {required: true, message: '请填写区县;代码', trigger: 'blur'} ],
|
||||
town: [ {required: true, message: '请填写乡镇街道;代码', trigger: 'blur'} ],
|
||||
provinceName: [ {required: true, message: '请填写省', trigger: 'blur'} ],
|
||||
cityName: [ {required: true, message: '请填写市', trigger: 'blur'} ],
|
||||
areaName: [ {required: true, message: '请填写区县', trigger: 'blur'} ],
|
||||
townName: [ {required: true, message: '请填写乡镇街道', trigger: 'blur'} ],
|
||||
address: [ {required: true, message: '请填写详细地址', trigger: 'blur'} ],
|
||||
lng: [ {required: true, message: '请填写经度', trigger: 'blur'} ],
|
||||
lat: [ {required: true, message: '请填写纬度', trigger: 'blur'} ],
|
||||
creatorId: [ {required: true, message: '请填写创建人', trigger: 'blur'} ],
|
||||
modifierId: [ {required: true, message: '请填写修改人', trigger: 'blur'} ],
|
||||
createTime: [ {required: true, message: '请填写创建时间', trigger: 'blur'} ],
|
||||
modifyTime: [ {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 {
|
||||
FormUtil.submit(stationFormIns, () => StationApi.add(formData))
|
||||
.then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
status.value = 'modify'
|
||||
return StationApi
|
||||
.detail(id!)
|
||||
.then(res => res.data)
|
||||
}
|
||||
}
|
||||
let map: any;
|
||||
let markers: any;
|
||||
|
||||
const getDetail = (latLng: string) => {
|
||||
if (markers) {
|
||||
markers.setMap(null);
|
||||
markers = null;
|
||||
function doSubmit(data: ProjectTypes.SearchProjectResult) {
|
||||
if (status.value === 'add') {
|
||||
return StationApi.add(data)
|
||||
.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({
|
||||
open(data: StationTypes.SearchStationResult = {}) {
|
||||
showDialog.value = true;
|
||||
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);
|
||||
open(data?: ProjectTypes.SearchProjectResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
});
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ declare global {
|
|||
interface SearchStationParam extends G.PageParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 组织信息 Id
|
||||
// 企业信息 Id
|
||||
orgId?: string
|
||||
// 站点名称
|
||||
stationName?: string
|
||||
|
|
@ -46,7 +46,7 @@ declare global {
|
|||
interface SearchStationResult {
|
||||
// Id
|
||||
id?: string
|
||||
// 组织信息 Id
|
||||
// 企业信息 Id
|
||||
orgId?: string
|
||||
// 站点名称
|
||||
stationName?: string
|
||||
|
|
@ -87,7 +87,7 @@ declare global {
|
|||
interface AddStationParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 组织信息 Id
|
||||
// 企业信息 Id
|
||||
orgId?: string
|
||||
// 站点名称
|
||||
stationName?: string
|
||||
|
|
@ -128,7 +128,7 @@ declare global {
|
|||
interface ModifyStationParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 组织信息 Id
|
||||
// 企业信息 Id
|
||||
orgId?: string
|
||||
// 站点名称
|
||||
stationName?: string
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
</ElTableColumn>
|
||||
<ElTableColumn label="创建时间" prop="createTime" width="100px"/>
|
||||
</template>
|
||||
<TruckForm ref="truckForm" @edit-succ="research"/>
|
||||
<TruckForm ref="truckForm" :research="research"/>
|
||||
<TruckDetail ref="truckDetail"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
|
@ -60,7 +60,8 @@ import TruckApi from '@/pages/cst/truck/truck-api.ts'
|
|||
import TruckForm from '@/pages/cst/truck/TruckForm.vue'
|
||||
import TruckDetail from '@/pages/cst/truck/TruckDetail.vue'
|
||||
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'
|
||||
|
||||
const truckDetailIns = useTemplateRef<InstanceType<typeof TruckDetail>>('truckDetail')
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ const formData = ref<TruckTypes.SearchTruckResult>({});
|
|||
// const rules = reactive<FormRules<TruckTypes.SearchTruckResult>>({
|
||||
// id: [{ required: true, message: "请填写Id", trigger: "blur" }],
|
||||
// customerId: [{ required: true, message: "请填写归属客户 Id;cst_customer.id", trigger: "blur" }],
|
||||
// orgId: [{ required: true, message: "请填写归属组织", trigger: "blur" }],
|
||||
// orgId: [{ required: true, message: "请填写归属企业", trigger: "blur" }],
|
||||
// licensePlate: [{ required: true, message: "请填写车牌", trigger: "blur" }],
|
||||
// truckLicense: [{ required: true, message: "请填写行驶证图片", trigger: "blur" }],
|
||||
// vnCode: [{ required: true, message: "请填写车架号", trigger: "blur" }],
|
||||
|
|
|
|||
|
|
@ -1,233 +1,163 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="truckForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="归属客户" prop="customerId">
|
||||
<ElInput
|
||||
v-model="formData.customerId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属客户"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="归属组织" prop="orgId">
|
||||
<ElInput
|
||||
v-model="formData.orgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属组织"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车牌" prop="licensePlate">
|
||||
<ElInput
|
||||
v-model="formData.licensePlate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="车牌"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="行驶证图片" prop="truckLicense">
|
||||
<ElInput
|
||||
v-model="formData.truckLicense"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="行驶证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车架号" prop="vnCode">
|
||||
<ElInput
|
||||
v-model="formData.vnCode"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="车架号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="合格证图片" prop="qualification">
|
||||
<ElInput
|
||||
v-model="formData.qualification"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合格证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="最大载重;单位:千克" prop="carryingCapacity">
|
||||
<ElInput
|
||||
v-model="formData.carryingCapacity"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="最大载重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="皮重;单位:千克" prop="tareWeight">
|
||||
<ElInput
|
||||
v-model="formData.tareWeight"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="皮重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="行驶证有效期" prop="licenseStartDate">
|
||||
<ElInput
|
||||
v-model="formData.licenseStartDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="行驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="行驶证有效期" prop="licenseEndDate">
|
||||
<ElInput
|
||||
v-model="formData.licenseEndDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="行驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="合格证有效期" prop="qualificationStartDate">
|
||||
<ElInput
|
||||
v-model="formData.qualificationStartDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合格证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="合格证有效期" prop="qualificationEndDate">
|
||||
<ElInput
|
||||
v-model="formData.qualificationEndDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合格证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车辆类型" prop="truckCategory">
|
||||
<ElInput
|
||||
v-model="formData.truckCategory"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="车辆类型"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车辆图片" prop="picture">
|
||||
<ElInput
|
||||
v-model="formData.picture"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="车辆图片"/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="忙碌中" prop="busy">
|
||||
<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>
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建车辆信息' : '修改车辆信息'"
|
||||
>
|
||||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<ElFormItem label="归属客户" prop="customerId">
|
||||
<ElInput
|
||||
v-model="formData.customerId"
|
||||
placeholder="归属客户"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属企业" prop="orgId">
|
||||
<ElInput
|
||||
v-model="formData.orgId"
|
||||
placeholder="归属企业"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="车牌" prop="licensePlate">
|
||||
<ElInput
|
||||
v-model="formData.licensePlate"
|
||||
placeholder="车牌"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="行驶证图片" prop="truckLicense">
|
||||
<ElInput
|
||||
v-model="formData.truckLicense"
|
||||
placeholder="行驶证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="车架号" prop="vnCode">
|
||||
<ElInput
|
||||
v-model="formData.vnCode"
|
||||
placeholder="车架号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合格证图片" prop="qualification">
|
||||
<ElInput
|
||||
v-model="formData.qualification"
|
||||
placeholder="合格证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="最大载重;单位:千克" prop="carryingCapacity">
|
||||
<ElInput
|
||||
v-model="formData.carryingCapacity"
|
||||
placeholder="最大载重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="皮重;单位:千克" prop="tareWeight">
|
||||
<ElInput
|
||||
v-model="formData.tareWeight"
|
||||
placeholder="皮重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="行驶证有效期" prop="licenseStartDate">
|
||||
<ElInput
|
||||
v-model="formData.licenseStartDate"
|
||||
placeholder="行驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="行驶证有效期" prop="licenseEndDate">
|
||||
<ElInput
|
||||
v-model="formData.licenseEndDate"
|
||||
placeholder="行驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合格证有效期" prop="qualificationStartDate">
|
||||
<ElInput
|
||||
v-model="formData.qualificationStartDate"
|
||||
placeholder="合格证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合格证有效期" prop="qualificationEndDate">
|
||||
<ElInput
|
||||
v-model="formData.qualificationEndDate"
|
||||
placeholder="合格证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="车辆类型" prop="truckCategory">
|
||||
<ElInput
|
||||
v-model="formData.truckCategory"
|
||||
placeholder="车辆类型"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="车辆图片" prop="picture">
|
||||
<ElInput
|
||||
v-model="formData.picture"
|
||||
placeholder="车辆图片"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import TruckApi from '@/pages/cst/truck/truck-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
|
||||
const emits = defineEmits(['editSucc'])
|
||||
const showDialog = ref(false)
|
||||
const submiting = ref(false)
|
||||
const status = ref<'add' | 'view' | 'modify'>('add')
|
||||
|
||||
const truckFormIns = useTemplateRef<FormInstance>('truckForm')
|
||||
|
||||
const formData = ref<TruckTypes.SearchTruckResult>({})
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
research: () => {
|
||||
},
|
||||
})
|
||||
const rules = reactive<FormRules<TruckTypes.SearchTruckResult>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
customerId: [{ required: true, message: '请填写归属客户 Id;cst_customer.id', trigger: 'blur' }],
|
||||
orgId: [{ required: true, message: '请填写归属组织', trigger: 'blur' }],
|
||||
licensePlate: [{ required: true, message: '请填写车牌', trigger: 'blur' }],
|
||||
truckLicense: [{ required: true, message: '请填写行驶证图片', trigger: 'blur' }],
|
||||
vnCode: [{ required: true, message: '请填写车架号', trigger: 'blur' }],
|
||||
qualification: [{ required: true, message: '请填写合格证图片', trigger: 'blur' }],
|
||||
carryingCapacity: [{ required: true, message: '请填写最大载重;单位:千克', trigger: 'blur' }],
|
||||
tareWeight: [{ required: true, message: '请填写皮重;单位:千克', trigger: 'blur' }],
|
||||
licenseStartDate: [{ required: true, message: '请填写行驶证有效期', trigger: 'blur' }],
|
||||
licenseEndDate: [{ required: true, message: '请填写行驶证有效期', trigger: 'blur' }],
|
||||
qualificationStartDate: [{ required: true, message: '请填写合格证有效期', trigger: 'blur' }],
|
||||
qualificationEndDate: [{ required: true, message: '请填写合格证有效期', trigger: 'blur' }],
|
||||
truckCategory: [{ required: true, message: '请填写车辆类型', trigger: 'blur' }],
|
||||
picture: [{ required: true, message: '请填写车辆图片', trigger: 'blur' }],
|
||||
busy: [{ required: true, message: '请填写忙碌中', trigger: 'blur' }],
|
||||
creatorId: [{ 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' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除', trigger: 'blur' }],
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
customerId: [ {required: true, message: '请填写归属客户 Id;cst_customer.id', trigger: 'blur'} ],
|
||||
orgId: [ {required: true, message: '请填写归属企业', trigger: 'blur'} ],
|
||||
licensePlate: [ {required: true, message: '请填写车牌', trigger: 'blur'} ],
|
||||
truckLicense: [ {required: true, message: '请填写行驶证图片', trigger: 'blur'} ],
|
||||
vnCode: [ {required: true, message: '请填写车架号', trigger: 'blur'} ],
|
||||
qualification: [ {required: true, message: '请填写合格证图片', trigger: 'blur'} ],
|
||||
carryingCapacity: [ {required: true, message: '请填写最大载重;单位:千克', trigger: 'blur'} ],
|
||||
tareWeight: [ {required: true, message: '请填写皮重;单位:千克', trigger: 'blur'} ],
|
||||
licenseStartDate: [ {required: true, message: '请填写行驶证有效期', trigger: 'blur'} ],
|
||||
licenseEndDate: [ {required: true, message: '请填写行驶证有效期', trigger: 'blur'} ],
|
||||
qualificationStartDate: [ {required: true, message: '请填写合格证有效期', trigger: 'blur'} ],
|
||||
qualificationEndDate: [ {required: true, message: '请填写合格证有效期', trigger: 'blur'} ],
|
||||
truckCategory: [ {required: true, message: '请填写车辆类型', trigger: 'blur'} ],
|
||||
picture: [ {required: true, message: '请填写车辆图片', trigger: 'blur'} ],
|
||||
busy: [ {required: true, message: '请填写忙碌中', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {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() {
|
||||
if (status.value === 'view') return
|
||||
submiting.value = true
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(truckFormIns, () => TruckApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
function doSubmit(data: TruckTypes.SearchTruckResult) {
|
||||
if (status.value === 'add') {
|
||||
return TruckApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(truckFormIns, () => TruckApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
return TruckApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: TruckTypes.SearchTruckResult = {}) {
|
||||
showDialog.value = true
|
||||
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
|
||||
}
|
||||
}
|
||||
open(data?: TruckTypes.SearchTruckResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ declare global {
|
|||
id?: string
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string
|
||||
// 归属组织
|
||||
// 归属企业
|
||||
orgId?: string
|
||||
// 车牌
|
||||
licensePlate?: string
|
||||
|
|
@ -52,7 +52,7 @@ declare global {
|
|||
id?: string
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string
|
||||
// 归属组织
|
||||
// 归属企业
|
||||
orgId?: string
|
||||
// 车牌
|
||||
licensePlate?: string
|
||||
|
|
@ -97,7 +97,7 @@ declare global {
|
|||
id?: string
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string
|
||||
// 归属组织
|
||||
// 归属企业
|
||||
orgId?: string
|
||||
// 车牌
|
||||
licensePlate?: string
|
||||
|
|
@ -142,7 +142,7 @@ declare global {
|
|||
id?: string
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string
|
||||
// 归属组织
|
||||
// 归属企业
|
||||
orgId?: string
|
||||
// 车牌
|
||||
licensePlate?: string
|
||||
|
|
|
|||
|
|
@ -12,15 +12,15 @@
|
|||
<Uploader ref="uploader" v-model:file="formData.picture"/>
|
||||
</ElFormItem>
|
||||
<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"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="分类名称" prop="categoryName">
|
||||
<ElInput v-model="formData.categoryName" :disabled="status === 'view'" placeholder="分类名称"/>
|
||||
<ElInput v-model="formData.categoryName" placeholder="分类名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="排序" prop="sort">
|
||||
<ElInputNumber v-model="formData.sort" :disabled="status === 'view'" :min="0" placeholder="排序"/>
|
||||
<ElInputNumber v-model="formData.sort" :min="0" placeholder="排序"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -34,6 +34,7 @@ import Uploader from '@/components/uploader/Uploader.vue'
|
|||
import { type FormRules } from 'element-plus'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
import { bizType } from '@/pages/gds/goods-category/constants.ts'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
|
|
@ -41,9 +42,9 @@ const props = withDefaults(defineProps<{
|
|||
research: () => {
|
||||
},
|
||||
})
|
||||
const formPanelIns = useTemplateRef<InstanceType<typeof AFormPanel>>('formPanel')
|
||||
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
|
||||
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>>({
|
||||
bizType: [ {required: true, message: '请填写业务类型', trigger: 'blur'} ],
|
||||
categoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
|
||||
|
|
@ -69,7 +70,7 @@ function doSubmit(data: GoodsCategoryTypes.SearchGoodsCategoryResult) {
|
|||
if (status.value === 'add') {
|
||||
return GoodsCategoryApi.add(data)
|
||||
.then(props.research)
|
||||
} else if (status.value === 'modify') {
|
||||
} else {
|
||||
return GoodsCategoryApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
<ElFormItem>
|
||||
<ElInput v-model="searchForm.sn" placeholder="产品编码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品名称">
|
||||
<ElFormItem>
|
||||
<ElInput v-model="searchForm.goodsName" placeholder="产品名称"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -20,22 +20,22 @@
|
|||
<GoodsCategoryDropTable v-model="formData.goodsCategoryId"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品名称" prop="goodsName">
|
||||
<ElInput v-model="formData.goodsName" :disabled="status === 'view'" placeholder="产品名称"/>
|
||||
<ElInput v-model="formData.goodsName" placeholder="产品名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="规格" prop="specParams">
|
||||
<ElInput v-model="formData.specParams" :disabled="status === 'view'" placeholder="规格"/>
|
||||
<ElInput v-model="formData.specParams" placeholder="规格"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="排序" prop="sort">
|
||||
<ElInputNumber v-model="formData.sort" :disabled="status === 'view'" placeholder="请输入排序"/>
|
||||
<ElInputNumber v-model="formData.sort" placeholder="请输入排序"/>
|
||||
</ElFormItem>
|
||||
<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 label="是否可用" prop="canuse">
|
||||
<el-switch v-model="formData.canuse" :disabled="status === 'view'"/>
|
||||
<el-switch v-model="formData.canuse"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" :disabled="status === 'view'" placeholder="请输入备注"/>
|
||||
<ElInput v-model="formData.memo" placeholder="请输入备注"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -50,6 +50,7 @@ import Uploader from '@/components/uploader/Uploader.vue'
|
|||
import ADict from '@/components/a-dict/ADict.vue'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
import GoodsCategoryDropTable from '@/pages/gds/goods-category/GoodsCategoryDropTable.vue'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
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 status = ref<'add' | 'view' | 'modify'>('add')
|
||||
const status = ref<'add' | 'modify'>('add')
|
||||
const rules = reactive<FormRules<GoodsTypes.SearchGoodsResult>>({
|
||||
goodsCategoryId: [ {required: true, message: '请填写产品类型', trigger: 'blur'} ],
|
||||
sn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
|
||||
|
|
@ -91,7 +92,7 @@ function doSubmit(data: GoodsTypes.SearchGoodsResult) {
|
|||
if (status.value === 'add') {
|
||||
return GoodsApi.add(data)
|
||||
.then(props.research)
|
||||
} else if (status.value === 'modify') {
|
||||
} else {
|
||||
return GoodsApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,37 +9,37 @@
|
|||
:rules="rules"
|
||||
class="form-panel"
|
||||
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"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="工艺名称" prop="craftName">
|
||||
<ElFormItem label="工艺名称" prop="craftName">
|
||||
<ElInput
|
||||
v-model="formData.craftName"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="工艺名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="工艺版本号" prop="craftVer">
|
||||
<ElFormItem label="工艺版本号" prop="craftVer">
|
||||
<ElInput
|
||||
v-model="formData.craftVer"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="工艺版本号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="工艺类型" prop="craftCategory">
|
||||
<ElFormItem label="工艺类型" prop="craftCategory">
|
||||
<ElSelect v-model="formData.craftCategory">
|
||||
<ElOption label="自动化" value="ZiDongHua"/>
|
||||
<ElOption label="人工" value="RenGong"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="备注" prop="memo">
|
||||
<ElFormItem label="备注" prop="memo">
|
||||
<ElInput
|
||||
v-model="formData.memo"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="是否可用" prop="canuse">
|
||||
<ElFormItem label="是否可用" prop="canuse">
|
||||
<ElCheckbox
|
||||
v-model="formData.canuse"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="是否可用"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@
|
|||
<ElFormItem label="完结时间">
|
||||
<ElInput v-model="searchForm.finishTime" placeholder="完结时间" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="运输组织">
|
||||
<ElInput v-model="searchForm.transOrgId" placeholder="运输组织" />
|
||||
<ElFormItem label="运输企业">
|
||||
<ElInput v-model="searchForm.transOrgId" placeholder="运输企业"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="指派清运公司时间">
|
||||
<ElInput v-model="searchForm.assignmentTransTime" placeholder="指派清运公司时间" />
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
<ElDescriptionsItem label="完结时间" prop="finishTime">
|
||||
{{ detailData.finishTime }}
|
||||
</ElDescriptionsItem>
|
||||
<ElDescriptionsItem label="运输组织 Id;cst_org.id" prop="transOrgId">
|
||||
<ElDescriptionsItem label="运输企业 Id;cst_org.id" prop="transOrgId">
|
||||
{{ detailData.transOrgId }}
|
||||
</ElDescriptionsItem>
|
||||
<ElDescriptionsItem label="运输方客户 Id" prop="transCustomerId">
|
||||
|
|
|
|||
|
|
@ -9,166 +9,166 @@
|
|||
ref="orderForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="Id" prop="id">
|
||||
<ElFormItem label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="订单编号" prop="sn">
|
||||
<ElFormItem label="订单编号" prop="sn">
|
||||
<ElInput
|
||||
v-model="formData.sn"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="订单编号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="项目 Id" prop="projectId">
|
||||
<ElFormItem label="项目 Id" prop="projectId">
|
||||
<ElInput
|
||||
v-model="formData.projectId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="项目 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="下单人 Id;sys_user.id" prop="userId">
|
||||
<ElFormItem label="下单人 Id;sys_user.id" prop="userId">
|
||||
<ElInput
|
||||
v-model="formData.userId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="下单人 Id;sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="下单人客户 Id;cst_customer.id" prop="customerId">
|
||||
<ElFormItem label="下单人客户 Id;cst_customer.id" prop="customerId">
|
||||
<ElInput
|
||||
v-model="formData.customerId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="下单人客户 Id;cst_customer.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="下单人姓名" prop="contacts">
|
||||
<ElFormItem label="下单人姓名" prop="contacts">
|
||||
<ElInput
|
||||
v-model="formData.contacts"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="下单人姓名"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="下单人联系方式" prop="phone">
|
||||
<ElFormItem label="下单人联系方式" prop="phone">
|
||||
<ElInput
|
||||
v-model="formData.phone"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="下单人联系方式"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="下单时间" prop="orderTime">
|
||||
<ElFormItem label="下单时间" prop="orderTime">
|
||||
<ElInput
|
||||
v-model="formData.orderTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="下单时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="订单类型;字典代码:order_category,HuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出" prop="orderCategory">
|
||||
<ElFormItem label="订单类型;字典代码:order_category,HuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出" prop="orderCategory">
|
||||
<ElInput
|
||||
v-model="formData.orderCategory"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="订单类型;字典代码:order_category,HuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="订单状态;字典代码:order_status,YiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消" prop="orderStatus">
|
||||
<ElFormItem label="订单状态;字典代码:order_status,YiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消" prop="orderStatus">
|
||||
<ElInput
|
||||
v-model="formData.orderStatus"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="订单状态;字典代码:order_status,YiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="完结时间" prop="finishTime">
|
||||
<ElFormItem label="完结时间" prop="finishTime">
|
||||
<ElInput
|
||||
v-model="formData.finishTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="完结时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="运输组织 Id;cst_org.id" prop="transOrgId">
|
||||
<ElFormItem label="运输企业 Id;cst_org.id" prop="transOrgId">
|
||||
<ElInput
|
||||
v-model="formData.transOrgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="运输组织 Id;cst_org.id"/>
|
||||
|
||||
placeholder="运输企业 Id;cst_org.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="运输方客户 Id" prop="transCustomerId">
|
||||
<ElFormItem label="运输方客户 Id" prop="transCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.transCustomerId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="运输方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="指派清运公司时间" prop="assignmentTransTime">
|
||||
<ElFormItem label="指派清运公司时间" prop="assignmentTransTime">
|
||||
<ElInput
|
||||
v-model="formData.assignmentTransTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="指派清运公司时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="站点 Id;cst_station.id" prop="stationId">
|
||||
<ElFormItem label="站点 Id;cst_station.id" prop="stationId">
|
||||
<ElInput
|
||||
v-model="formData.stationId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="站点 Id;cst_station.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="站点名称;cst_station.station.name" prop="stationName">
|
||||
<ElFormItem label="站点名称;cst_station.station.name" prop="stationName">
|
||||
<ElInput
|
||||
v-model="formData.stationName"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="站点名称;cst_station.station.name"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="运距;单位:米" prop="transDistance">
|
||||
<ElFormItem label="运距;单位:米" prop="transDistance">
|
||||
<ElInput
|
||||
v-model="formData.transDistance"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="运距;单位:米"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="预估量" prop="estimatedQuantity">
|
||||
<ElFormItem label="预估量" prop="estimatedQuantity">
|
||||
<ElInput
|
||||
v-model="formData.estimatedQuantity"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="预估量"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="预估车数" prop="estimatedTrainNum">
|
||||
<ElFormItem label="预估车数" prop="estimatedTrainNum">
|
||||
<ElInput
|
||||
v-model="formData.estimatedTrainNum"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="预估车数"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="产品 Id" prop="goodsId">
|
||||
<ElFormItem label="产品 Id" prop="goodsId">
|
||||
<ElInput
|
||||
v-model="formData.goodsId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="产品 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="产品名称" prop="goodsName">
|
||||
<ElFormItem label="产品名称" prop="goodsName">
|
||||
<ElInput
|
||||
v-model="formData.goodsName"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="产品名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="计量单位;字典代码:unit" prop="unit">
|
||||
<ElFormItem label="计量单位;字典代码:unit" prop="unit">
|
||||
<ElInput
|
||||
v-model="formData.unit"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="计量单位;字典代码:unit"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="客户备注" prop="customerMemo">
|
||||
<ElFormItem label="客户备注" prop="customerMemo">
|
||||
<ElInput
|
||||
v-model="formData.customerMemo"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="客户备注"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="创建人 Id; sys_user.id" prop="creatorId">
|
||||
<ElFormItem 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">
|
||||
<ElFormItem 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">
|
||||
<ElFormItem label="创建时间" prop="createTime">
|
||||
<ElInput
|
||||
v-model="formData.createTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="创建时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="修改时间" prop="modifyTime">
|
||||
<ElFormItem label="修改时间" prop="modifyTime">
|
||||
<ElInput
|
||||
v-model="formData.modifyTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
|
@ -210,7 +210,7 @@ orderTime: [{ required: true, message: '请填写下单时间', trigger: 'blur'
|
|||
orderCategory: [{ required: true, message: '请填写订单类型;字典代码:order_category,HuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出', trigger: 'blur' }],
|
||||
orderStatus: [{ required: true, message: '请填写订单状态;字典代码:order_status,YiYuYue-->已预约、JinXingZhong-->进行中、YiWanCheng-->已完成、YiQuXiao-->已取消', trigger: 'blur' }],
|
||||
finishTime: [{ required: true, message: '请填写完结时间', trigger: 'blur' }],
|
||||
transOrgId: [{ required: true, message: '请填写运输组织 Id;cst_org.id', trigger: 'blur' }],
|
||||
transOrgId: [ {required: true, message: '请填写运输企业 Id;cst_org.id', trigger: 'blur'} ],
|
||||
transCustomerId: [{ required: true, message: '请填写运输方客户 Id', trigger: 'blur' }],
|
||||
assignmentTransTime: [{ required: true, message: '请填写指派清运公司时间', trigger: 'blur' }],
|
||||
stationId: [{ required: true, message: '请填写站点 Id;cst_station.id', trigger: 'blur' }],
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ declare global {
|
|||
orderStatus?: string
|
||||
// 完结时间
|
||||
finishTime?: string
|
||||
// 运输组织 Id;cst_org.id
|
||||
// 运输企业 Id;cst_org.id
|
||||
transOrgId?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
|
|
@ -84,7 +84,7 @@ declare global {
|
|||
orderStatus?: string
|
||||
// 完结时间
|
||||
finishTime?: string
|
||||
// 运输组织 Id;cst_org.id
|
||||
// 运输企业 Id;cst_org.id
|
||||
transOrgId?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
|
|
@ -143,7 +143,7 @@ declare global {
|
|||
orderStatus?: string
|
||||
// 完结时间
|
||||
finishTime?: string
|
||||
// 运输组织 Id;cst_org.id
|
||||
// 运输企业 Id;cst_org.id
|
||||
transOrgId?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
|
|
@ -202,7 +202,7 @@ declare global {
|
|||
orderStatus?: string
|
||||
// 完结时间
|
||||
finishTime?: string
|
||||
// 运输组织 Id;cst_org.id
|
||||
// 运输企业 Id;cst_org.id
|
||||
transOrgId?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<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">
|
||||
<ElFormItem label-width="90" label="看料照片" prop="checkPhoto">
|
||||
<ElFormItem label="看料照片" prop="checkPhoto">
|
||||
<Uploader v-model:files="formData.checkPhoto"
|
||||
:limit="3"
|
||||
:upload-props="{
|
||||
|
|
@ -10,8 +10,8 @@
|
|||
}"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="备注" prop="weight">
|
||||
<ElInput v-model="formData.checkerMemo" :disabled="status === 'view'" placeholder="请输入备注"></ElInput>
|
||||
<ElFormItem label="备注" prop="weight">
|
||||
<ElInput v-model="formData.checkerMemo" placeholder="请输入备注"></ElInput>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
<template #footer>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<template>
|
||||
<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">
|
||||
<ElFormItem label-width="90" label="磅重" prop="weight">
|
||||
<ElInput v-model="formData.weight" type="number" :disabled="status === 'view'" placeholder="请输入磅重">
|
||||
<ElFormItem label="磅重" prop="weight">
|
||||
<ElInput v-model="formData.weight" placeholder="请输入磅重" type="number">
|
||||
<template #append>吨</template>
|
||||
</ElInput>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="车头照" prop="cargoPhoto">
|
||||
<ElFormItem label="车头照" prop="cargoPhoto">
|
||||
<Uploader v-model:file="formData.cargoPhoto"
|
||||
:upload-props="{
|
||||
accept: 'image/*',
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
}"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="车斗照" prop="bodyPhoto">
|
||||
<ElFormItem label="车斗照" prop="bodyPhoto">
|
||||
<Uploader v-model:file="formData.bodyPhoto"
|
||||
:upload-props="{
|
||||
accept: 'image/*',
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<template>
|
||||
<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">
|
||||
<ElFormItem label-width="90" label="磅重" prop="weight">
|
||||
<ElInput v-model="formData.weight" type="number" :disabled="status === 'view'" placeholder="请输入磅重">
|
||||
<ElFormItem label="磅重" prop="weight">
|
||||
<ElInput v-model="formData.weight" placeholder="请输入磅重" type="number">
|
||||
<template #append>吨</template>
|
||||
</ElInput>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="车头照" prop="cargoPhoto">
|
||||
<ElFormItem label="车头照" prop="cargoPhoto">
|
||||
<Uploader v-model:file="formData.cargoPhoto"
|
||||
:upload-props="{
|
||||
accept: 'image/*',
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
}"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="车斗照" prop="bodyPhoto">
|
||||
<ElFormItem label="车斗照" prop="bodyPhoto">
|
||||
<Uploader v-model:file="formData.bodyPhoto"
|
||||
:upload-props="{
|
||||
accept: 'image/*',
|
||||
|
|
|
|||
|
|
@ -1,33 +1,33 @@
|
|||
<template>
|
||||
<Page>
|
||||
<ElForm v-show="showSearchForm" inline @submit.prevent="paging">
|
||||
<ElFormItem label-width="90" label="车次">
|
||||
<ElFormItem label="车次">
|
||||
<ElInput v-model="searchForm.trainNum" placeholder="车次" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="订单 Id">
|
||||
<ElFormItem label="订单 Id">
|
||||
<ElInput v-model="searchForm.orderId" placeholder="订单 Id" />
|
||||
</ElFormItem>
|
||||
<!-- ;字典代码:trans_status,DaiPaiDan--待派单、DaiJieDan--待接单、YiJieDan--已接单、YunShuZhong--运输中、YiJinChang--已进场、YiChuChang--已出场、YiWanCheng--已完成、YiQuXiao--已取消 -->
|
||||
<ElFormItem label-width="90" label="运输状态">
|
||||
<ElFormItem label="运输状态">
|
||||
<ElInput v-model="searchForm.transStatus" placeholder="运输状态" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车道名称">
|
||||
<ElFormItem label="车道名称">
|
||||
<ElInput v-model="searchForm.lane" placeholder="车道名称" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="勘料状态">
|
||||
<ElFormItem label="勘料状态">
|
||||
<!-- ;字典代码:check_status,Wu--无需勘料、YiKanLiao--已勘料、WeiKanLiao--未勘料 -->
|
||||
<ElInput v-model="searchForm.checkStatus" placeholder="勘料状态" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车辆 Id">
|
||||
<ElFormItem label="车辆 Id">
|
||||
<ElInput v-model="searchForm.truckId" placeholder="车辆 Id" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车牌号">
|
||||
<ElFormItem label="车牌号">
|
||||
<ElInput v-model="searchForm.truckLicensePlate" placeholder="车牌号" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="历史皮重">
|
||||
<ElFormItem label="历史皮重">
|
||||
<ElInput v-model="searchForm.historyTareWeight" placeholder="历史皮重" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="创建时间">
|
||||
<ElFormItem label="创建时间">
|
||||
<ElInput v-model="searchForm.createTime" placeholder="创建时间" />
|
||||
</ElFormItem>
|
||||
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
<ElTableColumn label="勘料时间" prop="checkTime" width="160" />
|
||||
<ElTableColumn label="司机 Id" prop="driverId" />
|
||||
<!-- <ElTableColumn label="司机所属用户 Id" prop="driverUserId" /> -->
|
||||
<ElTableColumn label="归属组织" prop="truckOrgId" />
|
||||
<ElTableColumn label="归属企业" prop="truckOrgId"/>
|
||||
<ElTableColumn label="车辆 Id" prop="truckId" />
|
||||
<ElTableColumn label="车牌号" width="100" prop="truckLicensePlate" />
|
||||
<ElTableColumn label="历史皮重" prop="historyTareWeight" />
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@
|
|||
<ElDescriptionsItem label="归属客户 Id;cst_customer.id" prop="truckCustomerId">
|
||||
{{ detailData.truckCustomerId }}
|
||||
</ElDescriptionsItem>
|
||||
<ElDescriptionsItem label="归属组织" prop="truckOrgId">
|
||||
<ElDescriptionsItem label="归属企业" prop="truckOrgId">
|
||||
{{ detailData.truckOrgId }}
|
||||
</ElDescriptionsItem>
|
||||
<ElDescriptionsItem label="车辆 Id" prop="truckId">
|
||||
|
|
|
|||
|
|
@ -9,280 +9,280 @@
|
|||
ref="transForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="Id" prop="id">
|
||||
<ElFormItem label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车次" prop="trainNum">
|
||||
<ElFormItem label="车次" prop="trainNum">
|
||||
<ElInput
|
||||
v-model="formData.trainNum"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="车次"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="订单 Id" prop="orderId">
|
||||
<ElFormItem label="订单 Id" prop="orderId">
|
||||
<ElInput
|
||||
v-model="formData.orderId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="订单 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车道名称" prop="lane">
|
||||
<ElFormItem label="车道名称" prop="lane">
|
||||
<ElInput
|
||||
v-model="formData.lane"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="车道名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="指派司机时间" prop="assignmentDriverTime">
|
||||
<ElFormItem label="指派司机时间" prop="assignmentDriverTime">
|
||||
<ElInput
|
||||
v-model="formData.assignmentDriverTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="指派司机时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="司机确认接单时间" prop="driverConfirmTime">
|
||||
<ElFormItem label="司机确认接单时间" prop="driverConfirmTime">
|
||||
<ElInput
|
||||
v-model="formData.driverConfirmTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="司机确认接单时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="开始运输时间" prop="transTime">
|
||||
<ElFormItem label="开始运输时间" prop="transTime">
|
||||
<ElInput
|
||||
v-model="formData.transTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="开始运输时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="完结时间" prop="finishTime">
|
||||
<ElFormItem label="完结时间" prop="finishTime">
|
||||
<ElInput
|
||||
v-model="formData.finishTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="完结时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="看料员 Id;sys_user.id" prop="checkerId">
|
||||
<ElFormItem label="看料员 Id;sys_user.id" prop="checkerId">
|
||||
<ElInput
|
||||
v-model="formData.checkerId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="看料员 Id;sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="勘料状态;字典代码:check_status,Wu-->无需勘料、YiKanLiao-->已勘料、WeiKanLiao-->未勘料" prop="checkStatus">
|
||||
<ElFormItem label="勘料状态;字典代码:check_status,Wu-->无需勘料、YiKanLiao-->已勘料、WeiKanLiao-->未勘料" prop="checkStatus">
|
||||
<ElInput
|
||||
v-model="formData.checkStatus"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="勘料状态;字典代码:check_status,Wu-->无需勘料、YiKanLiao-->已勘料、WeiKanLiao-->未勘料"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="勘料时间" prop="checkTime">
|
||||
<ElFormItem label="勘料时间" prop="checkTime">
|
||||
<ElInput
|
||||
v-model="formData.checkTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="勘料时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="勘料照片" prop="checkPhoto">
|
||||
<ElFormItem label="勘料照片" prop="checkPhoto">
|
||||
<ElInput
|
||||
v-model="formData.checkPhoto"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="勘料照片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="勘料员备注" prop="checkerMemo">
|
||||
<ElFormItem label="勘料员备注" prop="checkerMemo">
|
||||
<ElInput
|
||||
v-model="formData.checkerMemo"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="勘料员备注"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="司机 Id" prop="driverId">
|
||||
<ElFormItem label="司机 Id" prop="driverId">
|
||||
<ElInput
|
||||
v-model="formData.driverId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="司机 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="司机所属客户 Id;cst_customer.id" prop="driverCustomerId">
|
||||
<ElFormItem label="司机所属客户 Id;cst_customer.id" prop="driverCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.driverCustomerId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="司机所属客户 Id;cst_customer.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="司机所属用户 Id" prop="driverUserId">
|
||||
<ElFormItem label="司机所属用户 Id" prop="driverUserId">
|
||||
<ElInput
|
||||
v-model="formData.driverUserId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="司机所属用户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="归属客户 Id;cst_customer.id" prop="truckCustomerId">
|
||||
<ElFormItem label="归属客户 Id;cst_customer.id" prop="truckCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.truckCustomerId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="归属客户 Id;cst_customer.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="归属组织" prop="truckOrgId">
|
||||
<ElFormItem label="归属企业" prop="truckOrgId">
|
||||
<ElInput
|
||||
v-model="formData.truckOrgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属组织"/>
|
||||
|
||||
placeholder="归属企业"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车辆 Id" prop="truckId">
|
||||
<ElFormItem label="车辆 Id" prop="truckId">
|
||||
<ElInput
|
||||
v-model="formData.truckId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="车辆 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="车牌号" prop="truckLicensePlate">
|
||||
<ElFormItem label="车牌号" prop="truckLicensePlate">
|
||||
<ElInput
|
||||
v-model="formData.truckLicensePlate"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="车牌号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="历史皮重" prop="historyTareWeight">
|
||||
<ElFormItem label="历史皮重" prop="historyTareWeight">
|
||||
<ElInput
|
||||
v-model="formData.historyTareWeight"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="历史皮重"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="毛重;单位:千克" prop="roughWeight">
|
||||
<ElFormItem label="毛重;单位:千克" prop="roughWeight">
|
||||
<ElInput
|
||||
v-model="formData.roughWeight"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="毛重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="皮重;单位:千克" prop="tareWeight">
|
||||
<ElFormItem label="皮重;单位:千克" prop="tareWeight">
|
||||
<ElInput
|
||||
v-model="formData.tareWeight"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="皮重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="净重;单位:千克" prop="settleWeight">
|
||||
<ElFormItem label="净重;单位:千克" prop="settleWeight">
|
||||
<ElInput
|
||||
v-model="formData.settleWeight"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="净重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="运距;单位:米" prop="transDistance">
|
||||
<ElFormItem label="运距;单位:米" prop="transDistance">
|
||||
<ElInput
|
||||
v-model="formData.transDistance"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="运距;单位:米"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="进场车头照片" prop="inFrontPhoto">
|
||||
<ElFormItem label="进场车头照片" prop="inFrontPhoto">
|
||||
<ElInput
|
||||
v-model="formData.inFrontPhoto"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="进场车头照片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="进场车斗照片" prop="inBodyPhoto">
|
||||
<ElFormItem label="进场车斗照片" prop="inBodyPhoto">
|
||||
<ElInput
|
||||
v-model="formData.inBodyPhoto"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="进场车斗照片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="出场车头照片" prop="outFrontPhoto">
|
||||
<ElFormItem label="出场车头照片" prop="outFrontPhoto">
|
||||
<ElInput
|
||||
v-model="formData.outFrontPhoto"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="出场车头照片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="出场车斗照片" prop="outBodyPhoto">
|
||||
<ElFormItem label="出场车斗照片" prop="outBodyPhoto">
|
||||
<ElInput
|
||||
v-model="formData.outBodyPhoto"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="出场车斗照片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="进场时间" prop="inTime">
|
||||
<ElFormItem label="进场时间" prop="inTime">
|
||||
<ElInput
|
||||
v-model="formData.inTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="进场时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="出场时间" prop="outTime">
|
||||
<ElFormItem label="出场时间" prop="outTime">
|
||||
<ElInput
|
||||
v-model="formData.outTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="出场时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="支付状态,MianFei-->免费、WeiZhiFu-->未支付、YiZhiFu-->已支付、YiTuiKuan-->已退款" prop="paymentStatus">
|
||||
<ElFormItem label="支付状态,MianFei-->免费、WeiZhiFu-->未支付、YiZhiFu-->已支付、YiTuiKuan-->已退款" prop="paymentStatus">
|
||||
<ElInput
|
||||
v-model="formData.paymentStatus"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="支付状态,MianFei-->免费、WeiZhiFu-->未支付、YiZhiFu-->已支付、YiTuiKuan-->已退款"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="支付时间" prop="payTime">
|
||||
<ElFormItem label="支付时间" prop="payTime">
|
||||
<ElInput
|
||||
v-model="formData.payTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="支付时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="退款时间" prop="refundTime">
|
||||
<ElFormItem label="退款时间" prop="refundTime">
|
||||
<ElInput
|
||||
v-model="formData.refundTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="退款时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="总金额;单位:元" prop="totalMoney">
|
||||
<ElFormItem label="总金额;单位:元" prop="totalMoney">
|
||||
<ElInput
|
||||
v-model="formData.totalMoney"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="总金额;单位:元"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="优惠金额;单位:元,有正负" prop="discountMoney">
|
||||
<ElFormItem label="优惠金额;单位:元,有正负" prop="discountMoney">
|
||||
<ElInput
|
||||
v-model="formData.discountMoney"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="优惠金额;单位:元,有正负"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="手动修正金额;单位:元,有正负" prop="reviseMoney">
|
||||
<ElFormItem label="手动修正金额;单位:元,有正负" prop="reviseMoney">
|
||||
<ElInput
|
||||
v-model="formData.reviseMoney"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="手动修正金额;单位:元,有正负"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="结算金额;单位:元" prop="settleMoney">
|
||||
<ElFormItem label="结算金额;单位:元" prop="settleMoney">
|
||||
<ElInput
|
||||
v-model="formData.settleMoney"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="结算金额;单位:元"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="结算方式,YueJie-->月结、YuE-->余额、XianFu-->现付" prop="settlementWay">
|
||||
<ElFormItem label="结算方式,YueJie-->月结、YuE-->余额、XianFu-->现付" prop="settlementWay">
|
||||
<ElInput
|
||||
v-model="formData.settlementWay"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="结算方式,YueJie-->月结、YuE-->余额、XianFu-->现付"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="付款人 Id;sys_user.id" prop="payerUserId">
|
||||
<ElFormItem label="付款人 Id;sys_user.id" prop="payerUserId">
|
||||
<ElInput
|
||||
v-model="formData.payerUserId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="付款人 Id;sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="付款人客户 Id;cst_customer.id" prop="payerCustomerId">
|
||||
<ElFormItem label="付款人客户 Id;cst_customer.id" prop="payerCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.payerCustomerId"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="付款人客户 Id;cst_customer.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="付款方资金账户 Id" prop="payerMoneyAccount">
|
||||
<ElFormItem label="付款方资金账户 Id" prop="payerMoneyAccount">
|
||||
<ElInput
|
||||
v-model="formData.payerMoneyAccount"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="付款方资金账户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="创建人 Id;sys_user.id" prop="creatorId">
|
||||
<ElFormItem 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">
|
||||
<ElFormItem 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">
|
||||
<ElFormItem label="创建时间" prop="createTime">
|
||||
<ElInput
|
||||
v-model="formData.createTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="创建时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="修改时间" prop="modifyTime">
|
||||
<ElFormItem label="修改时间" prop="modifyTime">
|
||||
<ElInput
|
||||
v-model="formData.modifyTime"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
|
@ -331,7 +331,7 @@ driverId: [{ required: true, message: '请填写司机 Id', trigger: 'blur' }],
|
|||
driverCustomerId: [{ required: true, message: '请填写司机所属客户 Id;cst_customer.id', trigger: 'blur' }],
|
||||
driverUserId: [{ required: true, message: '请填写司机所属用户 Id', trigger: 'blur' }],
|
||||
truckCustomerId: [{ required: true, message: '请填写归属客户 Id;cst_customer.id', trigger: 'blur' }],
|
||||
truckOrgId: [{ required: true, message: '请填写归属组织', trigger: 'blur' }],
|
||||
truckOrgId: [ {required: true, message: '请填写归属企业', trigger: 'blur'} ],
|
||||
truckId: [{ required: true, message: '请填写车辆 Id', trigger: 'blur' }],
|
||||
truckLicensePlate: [{ required: true, message: '请填写车牌号', trigger: 'blur' }],
|
||||
historyTareWeight: [{ required: true, message: '请填写历史皮重', trigger: 'blur' }],
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ declare global {
|
|||
driverUserId?: string;
|
||||
// 归属客户 Id;cst_customer.id
|
||||
truckCustomerId?: string;
|
||||
// 归属组织
|
||||
// 归属企业
|
||||
truckOrgId?: string;
|
||||
// 车辆 Id
|
||||
truckId?: string;
|
||||
|
|
@ -138,7 +138,7 @@ declare global {
|
|||
driverUserId?: string;
|
||||
// 归属客户 Id;cst_customer.id
|
||||
truckCustomerId?: string;
|
||||
// 归属组织
|
||||
// 归属企业
|
||||
truckOrgId?: string;
|
||||
// 车辆 Id
|
||||
truckId?: string;
|
||||
|
|
@ -237,7 +237,7 @@ declare global {
|
|||
driverUserId?: string;
|
||||
// 归属客户 Id;cst_customer.id
|
||||
truckCustomerId?: string;
|
||||
// 归属组织
|
||||
// 归属企业
|
||||
truckOrgId?: string;
|
||||
// 车辆 Id
|
||||
truckId?: string;
|
||||
|
|
@ -336,7 +336,7 @@ declare global {
|
|||
driverUserId?: string;
|
||||
// 归属客户 Id;cst_customer.id
|
||||
truckCustomerId?: string;
|
||||
// 归属组织
|
||||
// 归属企业
|
||||
truckOrgId?: string;
|
||||
// 车辆 Id
|
||||
truckId?: string;
|
||||
|
|
|
|||
|
|
@ -7,22 +7,22 @@
|
|||
<ElForm :model="dictFormData"
|
||||
class="sys_dict-form"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="字典标识">
|
||||
<ElFormItem label="字典标识">
|
||||
<ElInput
|
||||
v-model="dictFormData.dictKey"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="字典标识"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="字典名称">
|
||||
<ElFormItem label="字典名称">
|
||||
<ElInput
|
||||
v-model="dictFormData.dictName"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="字典名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="备注">
|
||||
<ElFormItem label="备注">
|
||||
<ElInput
|
||||
v-model="dictFormData.memo"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
|
|
|||
|
|
@ -7,30 +7,30 @@
|
|||
<ElForm :model="dictItemFormData"
|
||||
class="sys_dict_item-form"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="值">
|
||||
<ElFormItem label="值">
|
||||
<ElInput
|
||||
v-model="dictItemFormData.val"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="值"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="文本">
|
||||
<ElFormItem label="文本">
|
||||
<ElInput
|
||||
v-model="dictItemFormData.txt"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="文本"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="排序">
|
||||
<ElFormItem label="排序">
|
||||
<ElInputNumber
|
||||
v-model="dictItemFormData.sort"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
:min="1"
|
||||
placeholder="排序"
|
||||
style="width: 100%"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="备注">
|
||||
<ElFormItem label="备注">
|
||||
<ElInput
|
||||
v-model="dictItemFormData.memo"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@
|
|||
class="form-panel"
|
||||
label-width="auto">
|
||||
|
||||
<ElFormItem label-width="90" label="请求方式" prop="requestMethod">
|
||||
<ElFormItem label="请求方式" prop="requestMethod">
|
||||
<ElSelect
|
||||
v-model="formData.requestMethod"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="请求方式">
|
||||
<ElOption label="GET 请求" value="GET"/>
|
||||
<ElOption label="POST 请求" value="POST"/>
|
||||
|
|
@ -22,22 +22,22 @@
|
|||
<ElOption label="DELETE 请求" value="DELETE"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="路由前缀" prop="routingPath">
|
||||
<ElFormItem label="路由前缀" prop="routingPath">
|
||||
<ElInput
|
||||
v-model="formData.routingPath"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="以 / 开头 或 为空"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="端点地址" prop="endpointPath">
|
||||
<ElFormItem label="端点地址" prop="endpointPath">
|
||||
<ElInput
|
||||
v-model="formData.endpointPath"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="以 / 开头"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="访问模式" prop="accessModel">
|
||||
<ElFormItem label="访问模式" prop="accessModel">
|
||||
<ElSelect
|
||||
v-model="formData.accessModel"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="访问模式">
|
||||
<ElOption label="允许匿名访问" value="Anonymous"/>
|
||||
<ElOption label="允许已登录用户访问" value="Logined"/>
|
||||
|
|
@ -45,10 +45,10 @@
|
|||
<ElOption label="禁止访问" value="Forbidden"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="备注" prop="memo">
|
||||
<ElFormItem label="备注" prop="memo">
|
||||
<ElInput
|
||||
v-model="formData.memo"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
ref="codeForm"
|
||||
:rules="rules"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="表名称">
|
||||
<ElFormItem label="表名称">
|
||||
<ElTooltip
|
||||
:content="currentTable.tableComment"
|
||||
placement="top">
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
/>
|
||||
</ElTooltip>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="前端/后端" prop="lang">
|
||||
<ElFormItem label="前端/后端" prop="lang">
|
||||
<ElSelect
|
||||
v-model="formData.lang"
|
||||
placeholder="前端/后端"
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
value="java"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="表前缀" prop="data.prefix">
|
||||
<ElFormItem label="表前缀" prop="data.prefix">
|
||||
<ElInput
|
||||
v-model="formData.data.prefix"
|
||||
placeholder="表前缀"/>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@
|
|||
<script lang="ts" setup>
|
||||
import CodePreview from '@/pages/sys/gen/db-table/CodePreview.vue'
|
||||
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')
|
||||
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
<ElForm :model="tplFormData"
|
||||
class="sys_tpl-form"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="模板名称">
|
||||
<ElFormItem label="模板名称">
|
||||
<ElInput
|
||||
v-model="tplFormData.tplName"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="模板名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="前端/后端">
|
||||
<ElFormItem label="前端/后端">
|
||||
<ElSelect
|
||||
v-model="tplFormData.lang"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="前端/后端"
|
||||
>
|
||||
<ElOption
|
||||
|
|
@ -27,31 +27,31 @@
|
|||
value="java"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="模板内容">
|
||||
<ElFormItem label="模板内容">
|
||||
<ElInput
|
||||
v-model="tplFormData.tpl.content"
|
||||
:spellcheck="false"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="模板内容"
|
||||
resize="none"
|
||||
type="textarea"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="文件路径">
|
||||
<ElFormItem label="文件路径">
|
||||
<ElInput
|
||||
:spellcheck="false"
|
||||
v-model="tplFormData.tpl.dir"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="文件路径"
|
||||
resize="none"
|
||||
type="textarea"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="文件名称">
|
||||
<ElFormItem label="文件名称">
|
||||
<ElInput
|
||||
:spellcheck="false"
|
||||
v-model="tplFormData.tpl.filename"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="文件名称"
|
||||
resize="none"
|
||||
type="textarea"/>
|
||||
|
|
|
|||
|
|
@ -3,36 +3,36 @@
|
|||
:close-on-click-modal="false"
|
||||
destroy-on-close width="25vw" @close="dialogCloseHandler">
|
||||
<ElForm :model="menuForm" class="menu-form" label-width="auto">
|
||||
<ElFormItem label-width="90" label="上级">
|
||||
<ElTreeSelect v-model="menuForm.pid" :data="menuTreeDataSource" :default-expanded-keys="['0']" :disabled="status === 'view'" :render-after-expand="false" check-strictly placeholder="选择上级菜单"/>
|
||||
<ElFormItem label="上级">
|
||||
<ElTreeSelect v-model="menuForm.pid" :data="menuTreeDataSource" :default-expanded-keys="['0']" :render-after-expand="false" check-strictly placeholder="选择上级菜单"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="客户端" prop="clients">
|
||||
<ElFormItem label="客户端" prop="clients">
|
||||
<ElCheckboxGroup v-model="menuForm.clients">
|
||||
<ElCheckbox v-for="client in ClientUtil.clients" :key="client.val" :label="client.txt" :value="client.val"/>
|
||||
</ElCheckboxGroup>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="类型">
|
||||
<ElSelect v-model="menuForm.menuCategory" :data="menuCategoryData" :disabled="status === 'view'" placeholder="选择类型">
|
||||
<ElFormItem label="类型">
|
||||
<ElSelect v-model="menuForm.menuCategory" :data="menuCategoryData" placeholder="选择类型">
|
||||
<ElOption v-for="menuCategory in menuCategoryData" :key="menuCategory.key" :label="menuCategory.label" :value="menuCategory.key"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="名称">
|
||||
<ElInput v-model="menuForm.title" :disabled="status === 'view'" placeholder="名称"/>
|
||||
<ElFormItem label="名称">
|
||||
<ElInput v-model="menuForm.title" placeholder="名称"/>
|
||||
</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="路由名称"/>
|
||||
</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="路由地址"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="编码">
|
||||
<ElInput v-model="menuForm.sn" :disabled="status === 'view'" :min="0" placeholder="编码"/>
|
||||
<ElFormItem label="编码">
|
||||
<ElInput v-model="menuForm.sn" :min="0" placeholder="编码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="图标">
|
||||
<ElFormItem label="图标">
|
||||
<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>
|
||||
<AIcon :name="menuForm.icon!"/>
|
||||
</template>
|
||||
|
|
@ -62,8 +62,8 @@
|
|||
</template>
|
||||
</ElDropdown>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="排序">
|
||||
<ElInputNumber v-model="menuForm.sort" :disabled="status === 'view'" :min="0" placeholder="排序" style="width: 100%"/>
|
||||
<ElFormItem label="排序">
|
||||
<ElInputNumber v-model="menuForm.sort" :min="0" placeholder="排序" style="width: 100%"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
<template #footer>
|
||||
|
|
|
|||
|
|
@ -7,22 +7,22 @@
|
|||
<ElForm :model="roleFormData"
|
||||
class="sys_role-form"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="角色代码">
|
||||
<ElFormItem label="角色代码">
|
||||
<ElInput
|
||||
v-model="roleFormData.roleCode"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="角色代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="角色名称">
|
||||
<ElFormItem label="角色名称">
|
||||
<ElInput
|
||||
v-model="roleFormData.roleName"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="角色名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="备注">
|
||||
<ElFormItem label="备注">
|
||||
<ElInput
|
||||
v-model="roleFormData.memo"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
|
|
|||
|
|
@ -3,37 +3,37 @@
|
|||
:close-on-click-modal="false"
|
||||
destroy-on-close width="25vw" @close="dialogCloseHandler">
|
||||
<ElForm :model="taskFormData" class="sys_task-form" label-width="auto">
|
||||
<ElFormItem label-width="90" label="任务名称">
|
||||
<ElInput v-model="taskFormData.taskName" :disabled="status === 'view'" placeholder="任务名称"/>
|
||||
<ElFormItem label="任务名称">
|
||||
<ElInput v-model="taskFormData.taskName" placeholder="任务名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="任务执行函数">
|
||||
<ElSelect v-model="taskFormData.fn" :disabled="status === 'view'" placeholder="请选择任务执行函数">
|
||||
<ElFormItem label="任务执行函数">
|
||||
<ElSelect v-model="taskFormData.fn" placeholder="请选择任务执行函数">
|
||||
<ElOption v-for="item in fnList" :key="item.fn" :label="item.fn" :value="item.fn!"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="日志等级">
|
||||
<ElFormItem label="日志等级">
|
||||
<ElSelect v-model="taskFormData.logLevel" placeholder="请选择日志等级">
|
||||
<ElOption v-for="item in logLevelList" :key="item.value" :label="item.label" :value="item.value"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="调度方式">
|
||||
<ElFormItem label="调度方式">
|
||||
<ElSelect v-model="taskFormData.scheduleType" placeholder="请选择调度方式" @change="scheduleTypeChange">
|
||||
<ElOption v-for="item in scheduleTypeList" :key="item.value" :label="item.label" :value="item.value"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem v-if="taskFormData.scheduleType === 'Cron'" label="调度配置">
|
||||
<Cron v-model="taskFormData.scheduleConf" :disabled="status === 'view'" placeholder="调度配置"/>
|
||||
<Cron v-model="taskFormData.scheduleConf" placeholder="调度配置"/>
|
||||
</ElFormItem>
|
||||
<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>
|
||||
</ElInput>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="是否禁用">
|
||||
<ElFormItem label="是否禁用">
|
||||
<ElSwitch v-model="taskFormData.disabled" active-text="禁用" inactive-text="启用"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="备注">
|
||||
<ElInput v-model="taskFormData.memo" :disabled="status === 'view'" placeholder="备注"/>
|
||||
<ElFormItem label="备注">
|
||||
<ElInput v-model="taskFormData.memo" placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
<template #footer>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div>
|
||||
<ElForm v-show="showSearchForm" inline @submit.prevent="paging">
|
||||
<ElFormItem label-width="90" label="日志时间">
|
||||
<ElFormItem label="日志时间">
|
||||
<ElDatePicker
|
||||
v-model="searchForm.logTime"
|
||||
:shortcuts="shortcuts"
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
unlink-panels
|
||||
/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="日志等级">
|
||||
<ElFormItem label="日志等级">
|
||||
<ElSelect v-model="searchForm.logLevel" placeholder="请选择日志等级" style="width: 150px;">
|
||||
<ElOption v-for="item in logLevelList" :key="item.value" :label="item.label" :value="item.value"/>
|
||||
</ElSelect>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div>
|
||||
<ElForm v-show="showSearchForm" inline @submit.prevent="paging">
|
||||
<ElFormItem label-width="90" label="调度时间">
|
||||
<ElFormItem label="调度时间">
|
||||
<ElDatePicker
|
||||
v-model="searchForm.scheduleTime"
|
||||
:shortcuts="shortcuts"
|
||||
|
|
@ -12,17 +12,17 @@
|
|||
unlink-panels
|
||||
/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="调度方式">
|
||||
<ElFormItem label="调度方式">
|
||||
<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"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="任务状态">
|
||||
<ElFormItem label="任务状态">
|
||||
<ElSelect v-model="searchForm.taskStatus" placeholder="请选择任务状态" style="width: 150px;">
|
||||
<ElOption v-for="item in status" :key="item.value" :label="item.label" :value="item.value"/>
|
||||
</ElSelect>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="手动触发">
|
||||
<ElFormItem label="手动触发">
|
||||
<ElCheckbox
|
||||
v-model="searchForm.manually"
|
||||
placeholder="手动触发"/>
|
||||
|
|
|
|||
|
|
@ -7,17 +7,17 @@
|
|||
<ElForm :model="userFormData"
|
||||
class="sys_user-form"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="姓名">
|
||||
<ElFormItem label="姓名">
|
||||
<ElInput
|
||||
:readonly="userFormData.id=='1'"
|
||||
v-model="userFormData.nickname"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="姓名"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="头像">
|
||||
<ElFormItem label="头像">
|
||||
<Uploader
|
||||
v-model:file="userFormData.avatar"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
:upload-props="{
|
||||
accept: 'image/*',
|
||||
listType:'picture'
|
||||
|
|
@ -25,10 +25,10 @@
|
|||
<ElButton>点击上传头像</ElButton>
|
||||
</Uploader>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="联系电话">
|
||||
<ElFormItem label="联系电话">
|
||||
<ElInput
|
||||
v-model="userFormData.phone"
|
||||
:disabled="status === 'view'"
|
||||
|
||||
placeholder="联系电话"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem v-if="status === 'add'" label="用户名">
|
||||
|
|
|
|||
|
|
@ -33,6 +33,23 @@
|
|||
<ElInput v-model="searchForm.goodsName" placeholder="产品名称"/>
|
||||
</ElFormItem>
|
||||
</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>
|
||||
<ElTableColumn label="编号" prop="sn"/>
|
||||
<ElTableColumn label="仓库" prop="warehouseName"/>
|
||||
|
|
@ -48,7 +65,7 @@
|
|||
<ElTableColumn label="创建时间" prop="createTime" width="170px"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime" width="170px"/>
|
||||
</template>
|
||||
<InOrderForm ref="inOrderForm" @edit-succ="research"/>
|
||||
<InOrderForm ref="inOrderForm" :research="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,225 +1,130 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
|
||||
<ElForm :model="formData" :rules="rules" ref="inOrderForm" class="form-panel" label-width="auto">
|
||||
<!-- <ElFormItem label-width="90" label="编号" prop="sn">
|
||||
<ElInput
|
||||
v-model="formData.sn"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="编号"/>
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="责任人" prop="responsibleId">
|
||||
<!-- <ElInput
|
||||
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>
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建站点' : '修改站点'"
|
||||
>
|
||||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<ElFormItem label="责任人" prop="responsibleId">
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" 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 label-width="90" label="存放位置" prop="location">
|
||||
<ElInput readonly v-model="formData.location" :disabled="status === 'view'" placeholder="存放位置" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="入库时间" prop="inTime">
|
||||
<ElDatePicker v-model="formData.inTime" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择入库日期" />
|
||||
<!-- <ElInput v-model="formData.inTime" :disabled="status === 'view'" placeholder="入库时间" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" 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="采购单 Id;wh_purchase_order.id" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="采购单单号" prop="orderSn">
|
||||
<ElInput v-model="formData.orderSn" readonly :disabled="status === 'view'" placeholder="采购单单号;wh_purchase_order.sn" />
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="产品分类 Id" prop="goodsCategoryId">
|
||||
<ElInput v-model="formData.goodsCategoryId" :disabled="status === 'view'" placeholder="产品分类 Id" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="分类名称" prop="goodsCategoryName">
|
||||
<ElInput v-model="formData.goodsCategoryName" readonly :disabled="status === 'view'" placeholder="分类名称" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="产品名称" prop="goodsName">
|
||||
<ElInput v-model="formData.goodsName" readonly :disabled="status === 'view'" placeholder="产品名称" />
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="产品编码" prop="goodSn">
|
||||
<ElInput v-model="formData.goodSn" readonly :disabled="status === 'view'" placeholder="产品编码" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="数量" prop="quantity">
|
||||
<ElInput v-model="formData.quantity" readonly :disabled="status === 'view'" placeholder="数量" />
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="计量单位;字典代码:unit" prop="unit">
|
||||
<ElInput v-model="formData.unit" :disabled="status === 'view'" placeholder="计量单位;字典代码:unit" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" readonly :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>
|
||||
<ElFormItem label="仓库" prop="warehouseId">
|
||||
</ElFormItem>
|
||||
<ElFormItem label="存放位置" prop="location">
|
||||
<ElInput v-model="formData.location" placeholder="存放位置" readonly/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="入库时间" prop="inTime">
|
||||
<ElDatePicker v-model="formData.inTime" format="YYYY-MM-DD" placeholder="请选择入库日期" type="date" value-format="YYYY-MM-DD"/>
|
||||
<!-- <ElInput v-model="formData.inTime" placeholder="入库时间" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label="采购单" prop="orderId">
|
||||
</ElFormItem>
|
||||
<ElFormItem label="采购单单号" prop="orderSn">
|
||||
<ElInput v-model="formData.orderSn" placeholder="采购单单号;wh_purchase_order.sn" readonly/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="产品分类 Id" prop="goodsCategoryId">
|
||||
<ElInput v-model="formData.goodsCategoryId" placeholder="产品分类 Id" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="分类名称" prop="goodsCategoryName">
|
||||
<ElInput v-model="formData.goodsCategoryName" placeholder="分类名称" readonly/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品名称" prop="goodsName">
|
||||
<ElInput v-model="formData.goodsName" placeholder="产品名称" readonly/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="产品编码" prop="goodSn">
|
||||
<ElInput v-model="formData.goodSn" readonly placeholder="产品编码" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="数量" prop="quantity">
|
||||
<ElInput v-model="formData.quantity" placeholder="数量" readonly/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="计量单位;字典代码:unit" prop="unit">
|
||||
<ElInput v-model="formData.unit" placeholder="计量单位;字典代码:unit" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" placeholder="备注" readonly/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import InOrderApi from '@/pages/wh/in-order/in-order-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import Utils from '@/common/utils'
|
||||
import {
|
||||
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'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
|
||||
const emits = defineEmits(["editSucc"]);
|
||||
const showDialog = ref(false);
|
||||
const submiting = ref(false);
|
||||
const status = ref<"add" | "view" | "modify">("add");
|
||||
|
||||
const inOrderFormIns = useTemplateRef<FormInstance>("inOrderForm");
|
||||
|
||||
const formData = Utils.resetAble(reactive<InOrderTypes.SearchInOrderResult>({}));
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
research: () => {
|
||||
},
|
||||
})
|
||||
const rules = reactive<FormRules<InOrderTypes.SearchInOrderResult>>({
|
||||
id: [{ required: true, message: "请填写Id", trigger: "blur" }],
|
||||
sn: [{ required: true, message: "请填写编号", trigger: "blur" }],
|
||||
responsibleId: [{ required: true, message: "请填写责任人", trigger: "blur" }],
|
||||
warehouseId: [{ required: true, message: "请填写仓库", trigger: "blur" }],
|
||||
location: [{ required: true, message: "请填写存放位置", trigger: "blur" }],
|
||||
inTime: [{ required: true, message: "请填写入库时间", trigger: "blur" }],
|
||||
orderId: [{ required: true, message: "请填写采购单", trigger: "blur" }],
|
||||
orderSn: [{ required: true, message: "请填写采购单单号", trigger: "blur" }],
|
||||
goodsCategoryId: [{ required: true, message: "请填写产品分类 Id", trigger: "blur" }],
|
||||
goodsCategoryName: [{ required: true, message: "请填写分类名称", trigger: "blur" }],
|
||||
goodsId: [{ required: true, message: "请填写产品 Id", trigger: "blur" }],
|
||||
goodsName: [{ required: true, message: "请填写产品名称", trigger: "blur" }],
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
sn: [ {required: true, message: '请填写编号', trigger: 'blur'} ],
|
||||
responsibleId: [ {required: true, message: '请填写责任人', trigger: 'blur'} ],
|
||||
warehouseId: [ {required: true, message: '请填写仓库', trigger: 'blur'} ],
|
||||
location: [ {required: true, message: '请填写存放位置', trigger: 'blur'} ],
|
||||
inTime: [ {required: true, message: '请填写入库时间', trigger: 'blur'} ],
|
||||
orderId: [ {required: true, message: '请填写采购单', trigger: 'blur'} ],
|
||||
orderSn: [ {required: true, message: '请填写采购单单号', trigger: 'blur'} ],
|
||||
goodsCategoryId: [ {required: true, message: '请填写产品分类 Id', trigger: 'blur'} ],
|
||||
goodsCategoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
|
||||
goodsId: [ {required: true, message: '请填写产品 Id', trigger: 'blur'} ],
|
||||
goodsName: [ {required: true, message: '请填写产品名称', trigger: 'blur'} ],
|
||||
goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
|
||||
quantity: [{ required: true, message: "请填写数量", trigger: "blur" }],
|
||||
unit: [{ required: true, message: "请填写计量单位;字典代码:unit", trigger: "blur" }],
|
||||
memo: [{ required: true, message: "请填写备注", trigger: "blur" }],
|
||||
creatorId: [{ 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" }],
|
||||
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }],
|
||||
deleted: [{ required: true, message: "请填写是否删除; 0-->未删除、1-->已删除", trigger: "blur" }],
|
||||
});
|
||||
quantity: [ {required: true, message: '请填写数量', trigger: 'blur'} ],
|
||||
unit: [ {required: true, message: '请填写计量单位;字典代码:unit', trigger: 'blur'} ],
|
||||
memo: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
|
||||
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
|
||||
})
|
||||
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
|
||||
|
||||
const userColumn = [
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "nickname",
|
||||
},
|
||||
{
|
||||
label: "联系电话",
|
||||
prop: "phone",
|
||||
},
|
||||
{
|
||||
label: "用户名",
|
||||
prop: "account.username",
|
||||
},
|
||||
];
|
||||
const status = ref<'add' | 'modify'>('add')
|
||||
|
||||
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(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
function detailsLoader(id?: string) {
|
||||
if (Strings.isBlank(id)) {
|
||||
status.value = 'add'
|
||||
return Promise.resolve()
|
||||
} else {
|
||||
FormUtil.submit(inOrderFormIns, () => InOrderApi.add(formData))
|
||||
.then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
status.value = 'modify'
|
||||
return InOrderApi
|
||||
.detail(id!)
|
||||
.then(res => res.data)
|
||||
}
|
||||
}
|
||||
|
||||
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({
|
||||
open(data: InOrderTypes.SearchInOrderResult = {}) {
|
||||
showDialog.value = true;
|
||||
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);
|
||||
}
|
||||
open(data?: InOrderTypes.SearchInOrderResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
});
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -45,6 +45,23 @@
|
|||
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
</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>
|
||||
<ElTableColumn label="仓库" prop="warehouseName"/>
|
||||
<ElTableColumn label="产品" prop="goodsName"/>
|
||||
|
|
@ -57,7 +74,7 @@
|
|||
<ElTableColumn label="创建时间" prop="createTime" width="180"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime" width="180"/>
|
||||
</template>
|
||||
<InventoryForm ref="inventoryForm" @edit-succ="research"/>
|
||||
<InventoryForm ref="inventoryForm" :research="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,194 +1,120 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="inventoryForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<!-- <ElFormItem label-width="90" label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="仓库" prop="warehouseId">
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建项目' : '修改项目'"
|
||||
>
|
||||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<ElFormItem label="仓库" prop="warehouseId">
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品" prop="goodsId">
|
||||
</ElFormItem>
|
||||
<ElFormItem label="存放位置" prop="location">
|
||||
<ElInput
|
||||
v-model="formData.location"
|
||||
|
||||
<ASelect labelKey="warehouseName" v-model="formData.warehouseId" :tableColumn="warehouseColumn" :api="WarehouseApi.paging" :disabled="status === 'view'" placeholder="选择仓库" />
|
||||
placeholder="存放位置"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="当前库存数量" prop="stockQuantity">
|
||||
<ElInput
|
||||
v-model="formData.stockQuantity"
|
||||
|
||||
<!-- <ElInput
|
||||
v-model="formData.warehouseId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="仓库 Id"/> -->
|
||||
</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="选择产品" />
|
||||
<!-- <ElInput v-model="formData.goodsId" :disabled="status === 'view'" placeholder="产品 Id" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="存放位置" prop="location">
|
||||
<ElInput
|
||||
v-model="formData.location"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="存放位置"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="当前库存数量" prop="stockQuantity">
|
||||
<ElInput
|
||||
v-model="formData.stockQuantity"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="当前库存数量"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="锁定数量" prop="lockQuantity">
|
||||
<ElInput
|
||||
v-model="formData.lockQuantity"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="锁定数量"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="总量" prop="totalQuantity">
|
||||
<ElInput
|
||||
v-model="formData.totalQuantity"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="总量"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="剩余量" prop="remainingQuantity">
|
||||
<ElInput
|
||||
v-model="formData.remainingQuantity"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="剩余量"/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="计量单位" prop="unit">
|
||||
<ElInput
|
||||
v-model="formData.unit"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="计量单位"/>
|
||||
</ElFormItem> -->
|
||||
placeholder="当前库存数量"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="锁定数量" prop="lockQuantity">
|
||||
<ElInput
|
||||
v-model="formData.lockQuantity"
|
||||
|
||||
</ElForm>
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
|
||||
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler">提交</ElButton>
|
||||
placeholder="锁定数量"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="总量" prop="totalQuantity">
|
||||
<ElInput
|
||||
v-model="formData.totalQuantity"
|
||||
|
||||
placeholder="总量"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="剩余量" prop="remainingQuantity">
|
||||
<ElInput
|
||||
v-model="formData.remainingQuantity"
|
||||
|
||||
placeholder="剩余量"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import InventoryApi from '@/pages/wh/inventory/inventory-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import Utils from '@/common/utils'
|
||||
import {
|
||||
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";
|
||||
import { type FormRules } from 'element-plus'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
|
||||
const emits = defineEmits(['editSucc'])
|
||||
const showDialog = ref(false)
|
||||
const submiting = ref(false)
|
||||
const status = ref<'add' | 'view' | 'modify'>('add')
|
||||
|
||||
const inventoryFormIns = useTemplateRef<FormInstance>('inventoryForm')
|
||||
|
||||
const formData = Utils.resetAble(reactive<InventoryTypes.SearchInventoryResult>({}))
|
||||
const rules = reactive<FormRules<InventoryTypes.SearchInventoryResult>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
warehouseId: [{ required: true, message: '请填写仓库 Id', trigger: 'blur' }],
|
||||
goodsId: [{ required: true, message: '请填写产品 Id', trigger: 'blur' }],
|
||||
location: [{ required: true, message: '请填写存放位置', trigger: 'blur' }],
|
||||
stockQuantity: [{ required: true, message: '请填写当前库存数量', trigger: 'blur' }],
|
||||
lockQuantity: [{ required: true, message: '请填写锁定数量', trigger: 'blur' }],
|
||||
totalQuantity: [{ required: true, message: '请填写总量', trigger: 'blur' }],
|
||||
remainingQuantity: [{ required: true, message: '请填写剩余量', trigger: 'blur' }],
|
||||
unit: [{ required: true, message: '请填写计量单位', trigger: 'blur' }],
|
||||
creatorId: [{ 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' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur' }],
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
research: () => {
|
||||
},
|
||||
})
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.$reset()
|
||||
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
|
||||
const status = ref<'add' | 'modify'>('add')
|
||||
const rules = reactive<FormRules<InventoryTypes.SearchInventoryResult>>({
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
warehouseId: [ {required: true, message: '请填写仓库 Id', trigger: 'blur'} ],
|
||||
goodsId: [ {required: true, message: '请填写产品 Id', trigger: 'blur'} ],
|
||||
location: [ {required: true, message: '请填写存放位置', trigger: 'blur'} ],
|
||||
stockQuantity: [ {required: true, message: '请填写当前库存数量', trigger: 'blur'} ],
|
||||
lockQuantity: [ {required: true, message: '请填写锁定数量', trigger: 'blur'} ],
|
||||
totalQuantity: [ {required: true, message: '请填写总量', trigger: 'blur'} ],
|
||||
remainingQuantity: [ {required: true, message: '请填写剩余量', trigger: 'blur'} ],
|
||||
unit: [ {required: true, message: '请填写计量单位', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
|
||||
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
|
||||
})
|
||||
|
||||
function detailsLoader(id?: string) {
|
||||
if (Strings.isBlank(id)) {
|
||||
status.value = 'add'
|
||||
return Promise.resolve()
|
||||
} else {
|
||||
status.value = 'modify'
|
||||
return InventoryApi
|
||||
.detail(id!)
|
||||
.then(res => res.data)
|
||||
}
|
||||
}
|
||||
|
||||
const warehouseColumn = [
|
||||
{
|
||||
label: "名称",
|
||||
prop: "warehouseName",
|
||||
},
|
||||
{
|
||||
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
|
||||
})
|
||||
function doSubmit(data: InventoryTypes.SearchInventoryResult) {
|
||||
if (status.value === 'add') {
|
||||
return InventoryApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(inventoryFormIns, () => InventoryApi.add(formData))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
return InventoryApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: InventoryTypes.SearchInventoryResult = {}) {
|
||||
showDialog.value = true
|
||||
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)
|
||||
}
|
||||
}
|
||||
open(data?: InventoryTypes.SearchInventoryResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -72,6 +72,11 @@
|
|||
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #simpleSearchFormItem="{ searchForm }">
|
||||
<ElFormItem label="编号">
|
||||
<ElInput v-model="searchForm.sn" placeholder="编号"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #columns>
|
||||
<ElTableColumn label="编号" prop="sn"/>
|
||||
<ElTableColumn label="仓库" prop="warehouseName"/>
|
||||
|
|
@ -87,7 +92,7 @@
|
|||
<ElTableColumn label="创建时间" prop="createTime" width="170px"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime" width="170px"/>
|
||||
</template>
|
||||
<OutOrderForm ref="outOrderForm" @edit-succ="research"/>
|
||||
<OutOrderForm ref="outOrderForm" :research="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,220 +1,142 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
|
||||
<ElForm :model="formData" :rules="rules" ref="outOrderForm" class="form-panel" label-width="auto">
|
||||
<!-- <ElFormItem label-width="90" label="编号" prop="sn">
|
||||
<ElInput
|
||||
v-model="formData.sn"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="编号"/>
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="责任人" prop="responsibleId">
|
||||
<ASelect labelKey="nickname" :tableColumn="userColumn" v-model="formData.responsibleId" :api="UserApi.paging" :disabled="status === 'view'" placeholder="请选择负责人" />
|
||||
</ElFormItem>
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建项目' : '修改项目'"
|
||||
>
|
||||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<ElFormItem label="责任人" prop="responsibleId">
|
||||
<ASelect v-model="formData.responsibleId" :api="UserApi.paging" :tableColumn="userColumn" labelKey="nickname" placeholder="请选择负责人"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="仓库" prop="warehouseId">
|
||||
<ASelect labelKey="warehouseName" v-model="formData.warehouseId" @change="warehouseChange" :tableColumn="warehouseColumn" :api="WarehouseApi.paging" :disabled="status === 'view'" placeholder="选择仓库" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="仓库" prop="warehouseId">
|
||||
<ASelect v-model="formData.warehouseId" :api="WarehouseApi.paging" :tableColumn="warehouseColumn" labelKey="warehouseName" placeholder="选择仓库" @change="warehouseChange"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="存放位置" prop="location">
|
||||
<ElInput v-model="formData.location" :disabled="status === 'view'" placeholder="存放位置" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="出库时间" prop="outTime">
|
||||
<ElDatePicker v-model="formData.outTime" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择出库日期" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="存放位置" prop="location">
|
||||
<ElInput v-model="formData.location" placeholder="存放位置"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="出库时间" prop="outTime">
|
||||
<ElDatePicker v-model="formData.outTime" format="YYYY-MM-DD" placeholder="请选择出库日期" type="date" value-format="YYYY-MM-DD"/>
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="销售单" prop="orderId">
|
||||
<ASelect labelKey="sn" @change="orderChange" :tableColumn="orderColumn" v-model="formData.orderId" :api="SalesOrderApi.paging" :disabled="status === 'view'" placeholder="请选择销售单" />
|
||||
<!-- <ElInput v-model="formData.orderId" :disabled="status === 'view'" placeholder="销售单 Id;wh_sales_order.id" /> -->
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="销售单号;wh_sales_order.sn" prop="orderSn">
|
||||
<ElInput v-model="formData.orderSn" :disabled="status === 'view'" placeholder="销售单号;wh_sales_order.sn" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="产品分类" prop="goodsCategoryId">
|
||||
<ElInput v-model="formData.goodsCategoryId" :disabled="status === 'view'" placeholder="产品分类 Id" />
|
||||
</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">
|
||||
<ElInput v-model="formData.goodsId" :disabled="status === 'view'" placeholder="产品 Id" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="产品名称" prop="goodsName">
|
||||
<ElInput v-model="formData.goodsName" :disabled="status === 'view'" placeholder="产品名称" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品编码" label-width="90" prop="goodSn">
|
||||
<ElInput v-model="formData.goodSn" :disabled="status === 'view'" placeholder="产品编码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="数量" prop="quantity">
|
||||
<ElInput v-model="formData.quantity" :disabled="status === 'view'" placeholder="数量" />
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="计量单位;字典代码:unit" prop="unit">
|
||||
<ElInput v-model="formData.unit" :disabled="status === 'view'" placeholder="计量单位;字典代码:unit" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" :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>
|
||||
<ElFormItem label="销售单" prop="orderId">
|
||||
<ASelect v-model="formData.orderId" :api="SalesOrderApi.paging" :tableColumn="orderColumn" labelKey="sn" placeholder="请选择销售单" @change="orderChange"/>
|
||||
<!-- <ElInput v-model="formData.orderId" placeholder="销售单 Id;wh_sales_order.id" /> -->
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="销售单号;wh_sales_order.sn" prop="orderSn">
|
||||
<ElInput v-model="formData.orderSn" placeholder="销售单号;wh_sales_order.sn" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="产品分类" prop="goodsCategoryId">
|
||||
<ElInput v-model="formData.goodsCategoryId" placeholder="产品分类 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="分类名称" prop="goodsCategoryName">
|
||||
<ElInput v-model="formData.goodsCategoryName" placeholder="分类名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品" prop="goodsId">
|
||||
<ElInput v-model="formData.goodsId" placeholder="产品 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品名称" prop="goodsName">
|
||||
<ElInput v-model="formData.goodsName" placeholder="产品名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品编码" prop="goodSn">
|
||||
<ElInput v-model="formData.goodSn" placeholder="产品编码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="数量" prop="quantity">
|
||||
<ElInput v-model="formData.quantity" placeholder="数量"/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="计量单位;字典代码:unit" prop="unit">
|
||||
<ElInput v-model="formData.unit" placeholder="计量单位;字典代码:unit" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import OutOrderApi from '@/pages/wh/out-order/out-order-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import Utils from '@/common/utils'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import SalesOrderApi from '@/pages/wh/sales-order/sales-order-api.ts'
|
||||
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
|
||||
import ASelect from '@/components/a-select/ASelect.vue'
|
||||
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 = [
|
||||
{
|
||||
label: "姓名",
|
||||
prop: "nickname",
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
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>>({
|
||||
id: [{ required: true, message: "请填写Id", trigger: "blur" }],
|
||||
sn: [{ required: true, message: "请填写编号", trigger: "blur" }],
|
||||
responsibleId: [{ required: true, message: "请填写责任人 Id;sys_user.id", trigger: "blur" }],
|
||||
warehouseId: [{ required: true, message: "请填写仓库 Id;wh_warehouse.id", trigger: "blur" }],
|
||||
location: [{ required: true, message: "请填写存放位置", trigger: "blur" }],
|
||||
outTime: [{ required: true, message: "请填写出库时间", trigger: "blur" }],
|
||||
orderId: [{ required: true, message: "请填写销售单 Id;wh_sales_order.id", trigger: "blur" }],
|
||||
orderSn: [{ required: true, message: "请填写销售单号;wh_sales_order.sn", trigger: "blur" }],
|
||||
goodsCategoryId: [{ required: true, message: "请填写产品分类 Id", trigger: "blur" }],
|
||||
goodsCategoryName: [{ required: true, message: "请填写分类名称", trigger: "blur" }],
|
||||
goodsId: [{ required: true, message: "请填写产品 Id", trigger: "blur" }],
|
||||
goodsName: [{ required: true, message: "请填写产品名称", trigger: "blur" }],
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
sn: [ {required: true, message: '请填写编号', trigger: 'blur'} ],
|
||||
responsibleId: [ {required: true, message: '请填写责任人 Id;sys_user.id', trigger: 'blur'} ],
|
||||
warehouseId: [ {required: true, message: '请填写仓库 Id;wh_warehouse.id', trigger: 'blur'} ],
|
||||
location: [ {required: true, message: '请填写存放位置', trigger: 'blur'} ],
|
||||
outTime: [ {required: true, message: '请填写出库时间', trigger: 'blur'} ],
|
||||
orderId: [ {required: true, message: '请填写销售单 Id;wh_sales_order.id', trigger: 'blur'} ],
|
||||
orderSn: [ {required: true, message: '请填写销售单号;wh_sales_order.sn', trigger: 'blur'} ],
|
||||
goodsCategoryId: [ {required: true, message: '请填写产品分类 Id', trigger: 'blur'} ],
|
||||
goodsCategoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
|
||||
goodsId: [ {required: true, message: '请填写产品 Id', trigger: 'blur'} ],
|
||||
goodsName: [ {required: true, message: '请填写产品名称', trigger: 'blur'} ],
|
||||
goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
|
||||
quantity: [{ required: true, message: "请填写数量", trigger: "blur" }],
|
||||
unit: [{ required: true, message: "请填写计量单位;字典代码:unit", trigger: "blur" }],
|
||||
memo: [{ required: true, message: "请填写备注", trigger: "blur" }],
|
||||
creatorId: [{ 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" }],
|
||||
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }],
|
||||
deleted: [{ required: true, message: "请填写是否删除; 0-->未删除、1-->已删除", trigger: "blur" }],
|
||||
});
|
||||
quantity: [ {required: true, message: '请填写数量', trigger: 'blur'} ],
|
||||
unit: [ {required: true, message: '请填写计量单位;字典代码:unit', trigger: 'blur'} ],
|
||||
memo: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
|
||||
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
|
||||
})
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.$reset();
|
||||
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 OutOrderApi
|
||||
.detail(id!)
|
||||
.then(res => res.data)
|
||||
}
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === "view") return;
|
||||
submiting.value = true;
|
||||
if (formData.id != null) {
|
||||
FormUtil.submit(outOrderFormIns, () => OutOrderApi.modify(formData))
|
||||
.then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
function doSubmit(data: OutOrderTypes.SearchOutOrderResult) {
|
||||
if (status.value === 'add') {
|
||||
return OutOrderApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(outOrderFormIns, () => OutOrderApi.add(formData))
|
||||
.then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
return OutOrderApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: OutOrderTypes.SearchOutOrderResult = {}) {
|
||||
showDialog.value = true;
|
||||
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);
|
||||
}
|
||||
open(data?: OutOrderTypes.SearchOutOrderResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
});
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -41,6 +41,11 @@
|
|||
<ElInput v-model="searchForm.quantity" placeholder="数量"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #simpleSearchFormItem="{ searchForm }">
|
||||
<ElFormItem label="编号">
|
||||
<ElInput v-model="searchForm.sn" placeholder="编号"/>
|
||||
</ElFormItem>
|
||||
</template>
|
||||
<template #columns>
|
||||
<ElTableColumn label="编号" prop="sn"/>
|
||||
<ElTableColumn label="状态" prop="purchaseOrderStatus"/>
|
||||
|
|
@ -56,7 +61,7 @@
|
|||
<ElTableColumn label="创建时间" prop="createTime"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime"/>
|
||||
</template>
|
||||
<PurchaseOrderForm ref="purchaseOrderForm" @edit-succ="paging"/>
|
||||
<PurchaseOrderForm ref="purchaseOrderForm" :research="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
||||
|
|
@ -68,8 +73,10 @@ import type {
|
|||
ActionColumnType,
|
||||
ToolType,
|
||||
} from '@/components/page/a-page-type.ts'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
|
||||
const purchaseOrderFormIns = useTemplateRef<InstanceType<typeof PurchaseOrderForm>>('purchaseOrderForm')
|
||||
const formPageIns = useTemplateRef<ComponentExposed<typeof FormPage>>('formPage')
|
||||
|
||||
const actionColumn = reactive<ActionColumnType<PurchaseOrderTypes.SearchPurchaseOrderResult>>({
|
||||
tableActions: [
|
||||
|
|
@ -93,7 +100,7 @@ const actionColumn = reactive<ActionColumnType<PurchaseOrderTypes.SearchPurchase
|
|||
PurchaseOrderApi.del([ row.id! ])
|
||||
.then(() => {
|
||||
ElMessage.success('删除成功')
|
||||
paging()
|
||||
research()
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false
|
||||
|
|
@ -112,8 +119,11 @@ const leftTools: ToolType[] = [
|
|||
},
|
||||
]
|
||||
|
||||
function research() {
|
||||
formPageIns.value?.doSearch()
|
||||
}
|
||||
|
||||
function paging(param: PurchaseOrderTypes.SearchPurchaseOrderParam) {
|
||||
return PurchaseOrderApi.paging(param)
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,213 +1,126 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog" :destroy-on-close="true" :close-on-click-modal="false" width="fit-content" @close="dialogCloseHandler">
|
||||
<ElForm :model="formData" :rules="rules" ref="purchaseOrderForm" class="form-panel" label-width="auto">
|
||||
<!-- <ElFormItem label-width="90" label="Id" prop="id">
|
||||
<ElInput v-model="formData.id" :disabled="status === 'view'" placeholder="Id" />
|
||||
</ElFormItem> -->
|
||||
<!-- <ElFormItem label-width="90" label="编号" prop="sn">
|
||||
<ElInput v-model="formData.sn" :disabled="status === 'view'" placeholder="编号" />
|
||||
</ElFormItem> -->
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建项目' : '修改项目'"
|
||||
>
|
||||
<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"/>
|
||||
|
||||
<!-- ,JinXingZhong--进行中、YiDaoHuo--已到货、YiRuKu--已入库、YiQuXiao--已取消 -->
|
||||
<!-- <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" placeholder="到货日期" /> -->
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="产品分类" prop="goodsCategoryId">
|
||||
<ElInput v-model="formData.goodsCategoryId" placeholder="产品分类" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="分类名称" prop="goodsCategoryName">
|
||||
<ElInput v-model="formData.goodsCategoryName" placeholder="分类名称" />
|
||||
</ElFormItem> -->
|
||||
|
||||
<!-- <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="产品" prop="goodsId">
|
||||
</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 label-width="90" label="产品编码" prop="goodSn">
|
||||
<ElInput v-model="formData.goodSn" :disabled="status === 'view'" placeholder="产品编码" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="数量" prop="quantity">
|
||||
<ElInput v-model="formData.quantity" :disabled="status === 'view'" placeholder="数量" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="计量单位" prop="unit">
|
||||
<ElInput v-model="formData.unit" readonly placeholder="计量单位" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="总金额" prop="totalMoney">
|
||||
<ElInput v-model="formData.totalMoney" :disabled="status === 'view'" placeholder="总金额;单位:元" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" :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>
|
||||
<!-- <ElFormItem label="产品编码" prop="goodSn">
|
||||
<ElInput v-model="formData.goodSn" placeholder="产品编码" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="数量" prop="quantity">
|
||||
<ElInput v-model="formData.quantity" placeholder="数量"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="计量单位" prop="unit">
|
||||
<ElInput v-model="formData.unit" placeholder="计量单位" readonly/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="总金额" prop="totalMoney">
|
||||
<ElInput v-model="formData.totalMoney" placeholder="总金额;单位:元"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import PurchaseOrderApi from '@/pages/wh/purchase-order/purchase-order-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import Utils from '@/common/utils'
|
||||
import {
|
||||
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'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
|
||||
const emits = defineEmits(["editSucc"]);
|
||||
const showDialog = ref(false);
|
||||
const submiting = ref(false);
|
||||
const status = ref<"add" | "view" | "modify">("add");
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
research: () => {
|
||||
},
|
||||
})
|
||||
|
||||
const purchaseOrderFormIns = useTemplateRef<FormInstance>("purchaseOrderForm");
|
||||
|
||||
const formData = Utils.resetAble(reactive<PurchaseOrderTypes.SearchPurchaseOrderResult>({}));
|
||||
const rules = reactive<FormRules<PurchaseOrderTypes.SearchPurchaseOrderResult>>({
|
||||
sn: [{ required: true, message: "请填写编号", trigger: "blur" }],
|
||||
purchaseOrderStatus: [{ required: true, message: "请填写状态", trigger: "blur" }],
|
||||
customerId: [{ required: true, message: "请填写供货客户", trigger: "blur" }],
|
||||
purchaseDate: [{ required: true, message: "请填写采购日期", trigger: "blur" }],
|
||||
arrivalDate: [{ required: true, message: "请填写到货日期", trigger: "blur" }],
|
||||
goodsCategoryId: [{ required: true, message: "请填写产品分类", trigger: "blur" }],
|
||||
goodsCategoryName: [{ required: true, message: "请填写分类名称", trigger: "blur" }],
|
||||
goodsId: [{ required: true, message: "请填写产品", trigger: "blur" }],
|
||||
goodsName: [{ required: true, message: "请填写产品名称", trigger: "blur" }],
|
||||
sn: [ {required: true, message: '请填写编号', trigger: 'blur'} ],
|
||||
purchaseOrderStatus: [ {required: true, message: '请填写状态', trigger: 'blur'} ],
|
||||
customerId: [ {required: true, message: '请填写供货客户', trigger: 'blur'} ],
|
||||
purchaseDate: [ {required: true, message: '请填写采购日期', trigger: 'blur'} ],
|
||||
arrivalDate: [ {required: true, message: '请填写到货日期', trigger: 'blur'} ],
|
||||
goodsCategoryId: [ {required: true, message: '请填写产品分类', trigger: 'blur'} ],
|
||||
goodsCategoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
|
||||
goodsId: [ {required: true, message: '请填写产品', trigger: 'blur'} ],
|
||||
goodsName: [ {required: true, message: '请填写产品名称', trigger: 'blur'} ],
|
||||
goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
|
||||
quantity: [{ required: true, message: "请填写数量", trigger: "blur" }],
|
||||
unit: [{ required: true, message: "请填写计量单位", trigger: "blur" }],
|
||||
totalMoney: [{ required: true, message: "请填写总金额;单位:元", trigger: "blur" }],
|
||||
memo: [{ required: true, message: "请填写备注", trigger: "blur" }],
|
||||
creatorId: [{ required: true, message: "请填写创建人", trigger: "blur" }],
|
||||
modifierId: [{ required: true, message: "请填写修改人", trigger: "blur" }],
|
||||
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }],
|
||||
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }],
|
||||
});
|
||||
quantity: [ {required: true, message: '请填写数量', trigger: 'blur'} ],
|
||||
unit: [ {required: true, message: '请填写计量单位', trigger: 'blur'} ],
|
||||
totalMoney: [ {required: true, message: '请填写总金额;单位:元', trigger: 'blur'} ],
|
||||
memo: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
|
||||
creatorId: [ {required: true, message: '请填写创建人', trigger: 'blur'} ],
|
||||
modifierId: [ {required: true, message: '请填写修改人', trigger: 'blur'} ],
|
||||
createTime: [ {required: true, message: '请填写创建时间', trigger: 'blur'} ],
|
||||
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
|
||||
})
|
||||
|
||||
const goodColumn = [
|
||||
{
|
||||
label: "名称",
|
||||
prop: "goodsName",
|
||||
},
|
||||
{
|
||||
label: "规格",
|
||||
prop: "specParams",
|
||||
},
|
||||
{
|
||||
label: "计量单位",
|
||||
prop: "unitTxt",
|
||||
},
|
||||
];
|
||||
|
||||
const customerColumn = [
|
||||
{
|
||||
label: "公司",
|
||||
prop: "orgName",
|
||||
},
|
||||
{
|
||||
label: "地区",
|
||||
prop: "areaName",
|
||||
},
|
||||
{
|
||||
label: "负责人",
|
||||
prop: "customerName",
|
||||
},
|
||||
];
|
||||
const formPanelIns = useTemplateRef<ComponentExposed<typeof AFormPanel>>('formPanel')
|
||||
const status = ref<'add' | 'modify'>('add')
|
||||
|
||||
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 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 detailsLoader(id?: string) {
|
||||
if (Strings.isBlank(id)) {
|
||||
status.value = 'add'
|
||||
return Promise.resolve()
|
||||
} else {
|
||||
status.value = 'modify'
|
||||
return PurchaseOrderApi
|
||||
.detail(id!)
|
||||
.then(res => res.data)
|
||||
}
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === "view") return;
|
||||
submiting.value = true;
|
||||
if (formData.id != null) {
|
||||
FormUtil.submit(purchaseOrderFormIns, () => PurchaseOrderApi.modify(formData))
|
||||
.then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
function doSubmit(data: PurchaseOrderTypes.SearchPurchaseOrderResult) {
|
||||
if (status.value === 'add') {
|
||||
return PurchaseOrderApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(purchaseOrderFormIns, () => PurchaseOrderApi.add(formData))
|
||||
.then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
return PurchaseOrderApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: PurchaseOrderTypes.SearchPurchaseOrderResult = {}) {
|
||||
if (!Strings.isBlank(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");
|
||||
open(data?: PurchaseOrderTypes.SearchPurchaseOrderResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
});
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -67,6 +67,16 @@
|
|||
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
</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>
|
||||
<!-- <ElTableColumn label="Id" prop="id" /> -->
|
||||
<ElTableColumn label="编号" prop="sn"/>
|
||||
|
|
@ -88,7 +98,7 @@
|
|||
<ElTableColumn label="创建时间" prop="createTime" width="180"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime" width="180"/>
|
||||
</template>
|
||||
<SalesOrderForm ref="salesOrderForm" @edit-succ="research"/>
|
||||
<SalesOrderForm ref="salesOrderForm" :research="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,219 +1,145 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
|
||||
<ElForm :model="formData" :rules="rules" ref="salesOrderForm" class="form-panel" label-width="auto">
|
||||
<!-- <ElFormItem label-width="90" label="编号" prop="sn">
|
||||
<ElInput v-model="formData.sn" :disabled="status === 'view'" placeholder="编号" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="状态" prop="salesOrderStatus">
|
||||
<ElSelect v-model="formData.salesOrderStatus" :disabled="status === 'view'" placeholder="身份类型">
|
||||
<ElOption v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</ElSelect>
|
||||
<!-- <ElInput v-model="formData.salesOrderStatus" :disabled="status === 'view'" placeholder="状态" /> -->
|
||||
</ElFormItem>
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建项目' : '修改项目'"
|
||||
>
|
||||
<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>
|
||||
<!-- <ElInput v-model="formData.salesOrderStatus" placeholder="状态" /> -->
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label-width="90" label="购买方客户" prop="customerId">
|
||||
<ASelect labelKey="customerName" :tableColumn="customerColumn" v-model="formData.customerId" :api="CustomerApi.paging" :disabled="status === 'view'" placeholder="购买方客户" />
|
||||
<ElFormItem label="购买方客户" prop="customerId">
|
||||
|
||||
<!-- <ElInput v-model="formData.customerId" :disabled="status === 'view'" placeholder="购买方客户 Id" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="下单日期" prop="orderDate">
|
||||
<ElDatePicker v-model="formData.orderDate" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择采购日期" />
|
||||
<!-- <ElInput v-model="formData.customerId" placeholder="购买方客户 Id" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label="下单日期" prop="orderDate">
|
||||
<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="下单日期" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" 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" :disabled="status === 'view'" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="date" placeholder="请选择发货日期" />
|
||||
<!-- <ElInput v-model="formData.orderDate" placeholder="下单日期" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label="发货日期" prop="shipmentDate">
|
||||
<!-- <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" format="YYYY-MM-DD" placeholder="请选择发货日期" type="date" value-format="YYYY-MM-DD"/>
|
||||
|
||||
<!-- <ElInput v-model="formData.shipmentDate" :disabled="status === 'view'" placeholder="发货日期" /> -->
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="产品分类 Id" prop="goodsCategoryId">
|
||||
<ElInput v-model="formData.goodsCategoryId" :disabled="status === 'view'" placeholder="产品分类 Id" />
|
||||
</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="选择产品" />
|
||||
<!-- <ElInput v-model="formData.goodsId" :disabled="status === 'view'" placeholder="产品 Id" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品编码" label-width="90" prop="goodSn">
|
||||
<ElInput v-model="formData.goodSn" :disabled="status === 'view'" placeholder="产品编码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="数量" prop="quantity">
|
||||
<ElInput v-model="formData.quantity" :disabled="status === 'view'" placeholder="数量" />
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label-width="90" label="计量单位" prop="unit">
|
||||
<ElInput v-model="formData.unit" readonly :disabled="status === 'view'" placeholder="计量单位;字典代码:unit" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label-width="90" label="总金额(元)" prop="totalMoney">
|
||||
<ElInput v-model="formData.totalMoney" :disabled="status === 'view'" placeholder="总金额;单位:元" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" :disabled="status === 'view'" placeholder="备注" />
|
||||
</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>
|
||||
<!-- <ElInput v-model="formData.shipmentDate" placeholder="发货日期" /> -->
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="产品分类 Id" prop="goodsCategoryId">
|
||||
<ElInput v-model="formData.goodsCategoryId" placeholder="产品分类 Id" />
|
||||
</ElFormItem> -->
|
||||
<!-- <ElFormItem label="分类名称" prop="goodsCategoryName">
|
||||
<ElInput v-model="formData.goodsCategoryName" placeholder="分类名称" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="产品" prop="goodsId">
|
||||
<!-- <ElInput v-model="formData.goodsId" placeholder="产品 Id" /> -->
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产品编码" prop="goodSn">
|
||||
<ElInput v-model="formData.goodSn" placeholder="产品编码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="数量" prop="quantity">
|
||||
<ElInput v-model="formData.quantity" placeholder="数量"/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="计量单位" prop="unit">
|
||||
<ElInput v-model="formData.unit" readonly placeholder="计量单位;字典代码:unit" />
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="总金额(元)" prop="totalMoney">
|
||||
<ElInput v-model="formData.totalMoney" placeholder="总金额;单位:元"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="备注" prop="memo">
|
||||
<ElInput v-model="formData.memo" placeholder="备注"/>
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="创建时间" prop="createTime">
|
||||
<ElInput v-model="formData.createTime" placeholder="创建时间" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改时间" prop="modifyTime">
|
||||
<ElInput v-model="formData.modifyTime" placeholder="修改时间" />
|
||||
</ElFormItem> -->
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import SalesOrderApi from '@/pages/wh/sales-order/sales-order-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import Utils from '@/common/utils'
|
||||
import {
|
||||
ElMessage,
|
||||
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'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
import { salesOrderStatus } from '@/pages/wh/sales-order/constants.ts'
|
||||
|
||||
const emits = defineEmits(["editSucc"]);
|
||||
const showDialog = ref(false);
|
||||
const submiting = ref(false);
|
||||
const status = ref<"add" | "view" | "modify">("add");
|
||||
|
||||
const salesOrderFormIns = useTemplateRef<FormInstance>("salesOrderForm");
|
||||
|
||||
const formData = Utils.resetAble(reactive<SalesOrderTypes.SearchSalesOrderResult>({}));
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
research: () => {
|
||||
},
|
||||
})
|
||||
const rules = reactive<FormRules<SalesOrderTypes.SearchSalesOrderResult>>({
|
||||
id: [{ required: true, message: "请填写Id", trigger: "blur" }],
|
||||
sn: [{ required: true, message: "请填写编号", trigger: "blur" }],
|
||||
salesOrderStatus: [{ required: true, message: "请填写状态", trigger: "blur" }],
|
||||
customerId: [{ required: true, message: "请填写购买方客户 Id", trigger: "blur" }],
|
||||
orderDate: [{ required: true, message: "请填写下单日期", trigger: "blur" }],
|
||||
shipmentDate: [{ required: true, message: "请填写发货日期", trigger: "blur" }],
|
||||
goodsCategoryId: [{ required: true, message: "请填写产品分类 Id", trigger: "blur" }],
|
||||
goodsCategoryName: [{ required: true, message: "请填写分类名称", trigger: "blur" }],
|
||||
goodsId: [{ required: true, message: "请填写产品 Id", trigger: "blur" }],
|
||||
goodsName: [{ required: true, message: "请填写产品名称", trigger: "blur" }],
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
sn: [ {required: true, message: '请填写编号', trigger: 'blur'} ],
|
||||
salesOrderStatus: [ {required: true, message: '请填写状态', trigger: 'blur'} ],
|
||||
customerId: [ {required: true, message: '请填写购买方客户 Id', trigger: 'blur'} ],
|
||||
orderDate: [ {required: true, message: '请填写下单日期', trigger: 'blur'} ],
|
||||
shipmentDate: [ {required: true, message: '请填写发货日期', trigger: 'blur'} ],
|
||||
goodsCategoryId: [ {required: true, message: '请填写产品分类 Id', trigger: 'blur'} ],
|
||||
goodsCategoryName: [ {required: true, message: '请填写分类名称', trigger: 'blur'} ],
|
||||
goodsId: [ {required: true, message: '请填写产品 Id', trigger: 'blur'} ],
|
||||
goodsName: [ {required: true, message: '请填写产品名称', trigger: 'blur'} ],
|
||||
goodSn: [ {required: true, message: '请填写产品编码', trigger: 'blur'} ],
|
||||
quantity: [{ required: true, message: "请填写数量", trigger: "blur" }],
|
||||
unit: [{ required: true, message: "请填写计量单位;字典代码:unit", trigger: "blur" }],
|
||||
totalMoney: [{ required: true, message: "请填写总金额;单位:元", trigger: "blur" }],
|
||||
memo: [{ required: true, message: "请填写备注", trigger: "blur" }],
|
||||
creatorId: [{ 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" }],
|
||||
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }],
|
||||
deleted: [{ required: true, message: "请填写是否删除; 0-->未删除、1-->已删除", trigger: "blur" }],
|
||||
});
|
||||
quantity: [ {required: true, message: '请填写数量', trigger: 'blur'} ],
|
||||
unit: [ {required: true, message: '请填写计量单位;字典代码:unit', trigger: 'blur'} ],
|
||||
totalMoney: [ {required: true, message: '请填写总金额;单位:元', trigger: 'blur'} ],
|
||||
memo: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {required: true, message: '请填写修改时间', 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 = [
|
||||
{
|
||||
value: "JinXingZhong",
|
||||
label: "进行中",
|
||||
},
|
||||
{
|
||||
value: "YiFaHuo",
|
||||
label: "已发货",
|
||||
},
|
||||
{
|
||||
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 detailsLoader(id?: string) {
|
||||
if (Strings.isBlank(id)) {
|
||||
status.value = 'add'
|
||||
return Promise.resolve()
|
||||
} else {
|
||||
status.value = 'modify'
|
||||
return SalesOrderApi
|
||||
.detail(id!)
|
||||
.then(res => res.data)
|
||||
}
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === "view") return;
|
||||
submiting.value = true;
|
||||
if (formData.id != null) {
|
||||
FormUtil.submit(salesOrderFormIns, () => SalesOrderApi.modify(formData))
|
||||
.then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
function doSubmit(data: SalesOrderTypes.SearchSalesOrderResult) {
|
||||
if (status.value === 'add') {
|
||||
return SalesOrderApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(salesOrderFormIns, () => SalesOrderApi.add(formData))
|
||||
.then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
return SalesOrderApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: SalesOrderTypes.SearchSalesOrderResult = {}) {
|
||||
showDialog.value = true;
|
||||
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);
|
||||
}
|
||||
open(data?: SalesOrderTypes.SearchSalesOrderResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
});
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
@ -38,6 +38,15 @@
|
|||
</ElFormItem>
|
||||
</ElForm>
|
||||
</template>
|
||||
<template #simpleSearchFormItem="{ searchForm }">
|
||||
<ElForm inline @submit.prevent="paging">
|
||||
<ElFormItem label="仓库名称">
|
||||
<ElInput
|
||||
v-model="searchForm.warehouseName"
|
||||
placeholder="仓库名称"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
</template>
|
||||
<template #columns>
|
||||
<ElTableColumn label="Id" prop="id"/>
|
||||
<ElTableColumn label="仓库名称" prop="warehouseName"/>
|
||||
|
|
@ -48,7 +57,7 @@
|
|||
<ElTableColumn label="修改时间" prop="modifyTime"/>
|
||||
<!-- <ElTableColumn label="是否删除; 0-->未删除、1-->已删除" prop="deleted"/> -->
|
||||
</template>
|
||||
<WarehouseForm ref="warehouseForm" @edit-succ="research"/>
|
||||
<WarehouseForm ref="warehouseForm" :research="research"/>
|
||||
</FormPage>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,114 +1,92 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="warehouseForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label-width="90" label="仓库名称" prop="warehouseName">
|
||||
<ElInput
|
||||
v-model="formData.warehouseName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="仓库名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label-width="90" label="位置" prop="location">
|
||||
<ElInput
|
||||
v-model="formData.location"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="位置"/>
|
||||
</ElFormItem>
|
||||
<AFormPanel
|
||||
ref="formPanel"
|
||||
:details-loader="detailsLoader"
|
||||
:do-submit="doSubmit"
|
||||
:rules="rules"
|
||||
:title="status === 'add' ? '新建项目' : '修改项目'"
|
||||
>
|
||||
<template #default="{formData}">
|
||||
<div class="form-items">
|
||||
<ElFormItem label="仓库名称" prop="warehouseName">
|
||||
<ElInput
|
||||
v-model="formData.warehouseName"
|
||||
|
||||
</ElForm>
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
|
||||
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler">提交</ElButton>
|
||||
placeholder="仓库名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="位置" prop="location">
|
||||
<ElInput
|
||||
v-model="formData.location"
|
||||
|
||||
placeholder="位置"/>
|
||||
</ElFormItem>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</AFormPanel>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import Utils from '@/common/utils'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
import { type FormRules } from 'element-plus'
|
||||
import type { ComponentExposed } from 'vue-component-type-helpers'
|
||||
import AFormPanel from '@/components/a-form-panel/AFormPanel.vue'
|
||||
|
||||
const emits = defineEmits(['editSucc'])
|
||||
const showDialog = ref(false)
|
||||
const submiting = ref(false)
|
||||
const status = ref<'add' | 'view' | 'modify'>('add')
|
||||
|
||||
const warehouseFormIns = useTemplateRef<FormInstance>('warehouseForm')
|
||||
|
||||
const formData = Utils.resetAble(reactive<WarehouseTypes.SearchWarehouseResult>({}))
|
||||
const props = withDefaults(defineProps<{
|
||||
research?: () => void
|
||||
}>(), {
|
||||
research: () => {
|
||||
},
|
||||
})
|
||||
const rules = reactive<FormRules<WarehouseTypes.SearchWarehouseResult>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
warehouseName: [{ required: true, message: '请填写仓库名称', trigger: 'blur' }],
|
||||
location: [{ required: true, message: '请填写位置', trigger: 'blur' }],
|
||||
creatorId: [{ 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' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur' }],
|
||||
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
|
||||
warehouseName: [ {required: true, message: '请填写仓库名称', trigger: 'blur'} ],
|
||||
location: [ {required: true, message: '请填写位置', trigger: 'blur'} ],
|
||||
creatorId: [ {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'} ],
|
||||
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
|
||||
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
|
||||
})
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.$reset()
|
||||
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 WarehouseApi
|
||||
.detail(id!)
|
||||
.then(res => res.data)
|
||||
}
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === 'view') return
|
||||
submiting.value = true
|
||||
if (formData.id != null) {
|
||||
FormUtil.submit(warehouseFormIns, () => WarehouseApi.modify(formData))
|
||||
.then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
function doSubmit(data: WarehouseTypes.SearchWarehouseResult) {
|
||||
if (status.value === 'add') {
|
||||
return WarehouseApi.add(data)
|
||||
.then(props.research)
|
||||
} else {
|
||||
FormUtil.submit(warehouseFormIns, () => WarehouseApi.add(formData))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
return WarehouseApi.modify(data)
|
||||
.then(props.research)
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: WarehouseTypes.SearchWarehouseResult = {}) {
|
||||
showDialog.value = true
|
||||
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)
|
||||
}
|
||||
}
|
||||
open(data?: WarehouseTypes.SearchWarehouseResult) {
|
||||
formPanelIns.value?.open(data?.id)
|
||||
},
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
.form-items {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Reference in New Issue