物资管理模块部分搭建-清单问题修改
This commit is contained in:
parent
9143abe7b6
commit
bb0a53fc52
|
|
@ -27,3 +27,21 @@ export const queryProjectSelApi = (data) => {
|
|||
params: data
|
||||
})
|
||||
}
|
||||
/** 工程类型查询-下拉选 */
|
||||
export const queryProjectTypeApi = (data) => {
|
||||
return request.get('/base/tree/getProjectType', {
|
||||
params: data
|
||||
})
|
||||
}
|
||||
/** 工程状态查询-下拉选 */
|
||||
export const queryProjectStatusApi = (data) => {
|
||||
return request.get('/base/tree/getProjectStatus', {
|
||||
params: data
|
||||
})
|
||||
}
|
||||
/** 工程性质查询-下拉选 */
|
||||
export const queryProjectNatureApi = (data) => {
|
||||
return request.get('/base/tree/getProjectNature', {
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
/**
|
||||
* 物资仓库管理页面 API
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
||||
/** 物资仓库查询 */
|
||||
export const queryStorageListApi = (data) => {
|
||||
return request.get('/material/maHouse/list', {
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
/** 物资仓库新增 */
|
||||
export const addStorageListApi = (data) => {
|
||||
return request.post('/material/maHouse/add', data)
|
||||
}
|
||||
|
||||
/** 物资仓库修改 */
|
||||
export const updateStorageListApi = (data) => {
|
||||
return request.post('/material/maHouse/update', data)
|
||||
}
|
||||
|
||||
/** 物资仓库删除 */
|
||||
export const delStorageListApi = (id) => {
|
||||
return request.delete(`/material/maHouse/${id}`)
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
/**
|
||||
* 物资仓库配置管理页面 API
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
||||
/** 物资仓库配置查询 */
|
||||
export const queryStorageConfigListApi = (data) => {
|
||||
return request.get('/material/ma_house_set/list', {
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
/** 物资仓库配置新增 */
|
||||
export const addStorageConfigListApi = (data) => {
|
||||
return request.post('/material/ma_house_set/add', data)
|
||||
}
|
||||
|
||||
/** 物资仓库配置修改 */
|
||||
export const updateStorageConfigListApi = (data) => {
|
||||
return request.post('/material/ma_house_set/update', data)
|
||||
}
|
||||
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="onSubmit">确定</el-button>
|
||||
<el-button type="success" @click="onSubmit">确定</el-button>
|
||||
<el-button
|
||||
@click="
|
||||
() => {
|
||||
|
|
@ -72,50 +72,36 @@ export default {
|
|||
return {
|
||||
subSort: '', // 提交类型:新增 1 / 修改 2
|
||||
contactUnitsParams: {
|
||||
name: '', // 单位名称
|
||||
typeId: '', // 单位类型
|
||||
companyId: '', // 所属分公司
|
||||
materialClerk: '', // 材料员
|
||||
phone: '', // 联系电话
|
||||
isActive: '', // 启用状态
|
||||
name: undefined, // 单位名称
|
||||
typeId: undefined, // 单位类型
|
||||
companyId: undefined, // 所属分公司
|
||||
materialClerk: undefined, // 材料员
|
||||
phone: undefined, // 联系电话
|
||||
isActive: '1', // 启用状态
|
||||
},
|
||||
// 校验规则
|
||||
contactUnitsParamsRules: {
|
||||
/* pro_name: [
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入工程名称',
|
||||
message: '请输入单位名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_unit: [
|
||||
typeId: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择施工单位',
|
||||
message: '请选择单位类型',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type_of: [
|
||||
companyId: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程类型',
|
||||
message: '请选择所属分公司',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程状态',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_nature: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程性质',
|
||||
trigger: 'blur',
|
||||
},
|
||||
], */
|
||||
},
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工程类型" prop="pro_type_of">
|
||||
<el-form-item label="工程类型" prop="projectType">
|
||||
<el-select
|
||||
v-model="projectParams.projectType"
|
||||
>
|
||||
|
|
@ -129,8 +129,8 @@
|
|||
</el-row>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="备注" prop="remarks">
|
||||
<el-input type="textarea" v-model="projectParams.remarks" :rows="4" />
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input type="textarea" v-model="projectParams.remark" :rows="4" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12"> </el-col>
|
||||
|
|
@ -154,11 +154,14 @@
|
|||
<script>
|
||||
import {
|
||||
addProjectApi,
|
||||
editProjectApi
|
||||
editProjectApi,
|
||||
queryProjectTypeApi,
|
||||
queryProjectStatusApi,
|
||||
queryProjectNatureApi
|
||||
} from '@/api/base/project.js'
|
||||
import {
|
||||
fetchSelOptApi
|
||||
} from '@/api/system/common'
|
||||
queryContactUnitsSelApi
|
||||
} from '@/api/base/customer'
|
||||
export default {
|
||||
name: 'FormProject',
|
||||
props: {
|
||||
|
|
@ -167,6 +170,12 @@ export default {
|
|||
default: () => null,
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getUnitRange()
|
||||
this.getProjTypeRange()
|
||||
this.getProjStatusRange()
|
||||
this.getProjNatureRange()
|
||||
},
|
||||
mounted() {
|
||||
console.log(this.editParams)
|
||||
if (this.editParams) {
|
||||
|
|
@ -180,19 +189,19 @@ export default {
|
|||
return {
|
||||
subSort: '', // 提交类型:新增 1 / 修改 2
|
||||
projectParams: {
|
||||
name: '', // 工程名称
|
||||
num: '', // 工程编号
|
||||
impUnit: '', // 实施单位
|
||||
projectType: '', //工程类型
|
||||
stats: '', // 工程状态
|
||||
nature: '', // 工程性质
|
||||
manager: '', // 项目经理
|
||||
phone: '', // 联系电话
|
||||
htzt: '', // 合同主体
|
||||
deptName: '', // 项目部
|
||||
proId: '', // i8工程id
|
||||
isMatch: '', // 是否关联i8工程
|
||||
remarks: '', // 备注
|
||||
name: undefined, // 工程名称
|
||||
num: undefined, // 工程编号
|
||||
impUnit: undefined, // 实施单位
|
||||
projectType: undefined, //工程类型
|
||||
stats: undefined, // 工程状态
|
||||
nature: undefined, // 工程性质
|
||||
manager: undefined, // 项目经理
|
||||
phone: undefined, // 联系电话
|
||||
htzt: undefined, // 合同主体
|
||||
deptName: undefined, // 项目部
|
||||
proId: undefined, // i8工程id
|
||||
isMatch: undefined, // 是否关联i8工程
|
||||
remark: undefined, // 备注
|
||||
},
|
||||
// 工程下拉列表
|
||||
proSelRanges: {
|
||||
|
|
@ -203,48 +212,91 @@ export default {
|
|||
},
|
||||
// 校验规则
|
||||
projectParamsRules: {
|
||||
/* projectName: [
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入工程名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_unit: [
|
||||
impUnit: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择施工单位',
|
||||
message: '请选择实施单位',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type_of: [
|
||||
projectType: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程类型',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type: [
|
||||
stats: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程状态',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_nature: [
|
||||
nature: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程性质',
|
||||
trigger: 'blur',
|
||||
},
|
||||
], */
|
||||
],
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/** 获取各类下拉框 */
|
||||
getSelRanges() {
|
||||
//
|
||||
|
||||
/** 获取往来单位下拉框 */
|
||||
getUnitRange() {
|
||||
queryContactUnitsSelApi().then(res => {
|
||||
console.log(res)
|
||||
this.proSelRanges.pro_unit_range = res.data.map(item => {
|
||||
return {
|
||||
label: item.name,
|
||||
value: item.id
|
||||
}
|
||||
})
|
||||
}).catch(err => {})
|
||||
},
|
||||
/** 获取工程类型下拉框 */
|
||||
getProjTypeRange() {
|
||||
queryProjectTypeApi().then(res => {
|
||||
this.proSelRanges.pro_type_range = res.data.data.map(item => {
|
||||
return {
|
||||
label: item.dictLabel,
|
||||
value: item.dictCode
|
||||
}
|
||||
})
|
||||
}).catch(err => {})
|
||||
},
|
||||
/** 获取工程状态下拉框 */
|
||||
getProjStatusRange() {
|
||||
queryProjectStatusApi().then(res => {
|
||||
this.proSelRanges.pro_stats_range = res.data.data.map(item => {
|
||||
return {
|
||||
label: item.dictLabel,
|
||||
value: item.dictCode
|
||||
}
|
||||
})
|
||||
}).catch(err => {})
|
||||
},
|
||||
/** 获取工程性质下拉框 */
|
||||
getProjNatureRange() {
|
||||
queryProjectNatureApi().then(res => {
|
||||
this.proSelRanges.pro_nature_range = res.data.data.map(item => {
|
||||
return {
|
||||
label: item.dictLabel,
|
||||
value: item.dictCode
|
||||
}
|
||||
})
|
||||
}).catch(err => {})
|
||||
},
|
||||
/** 确认按钮 */
|
||||
onSubmit() {
|
||||
|
|
@ -255,12 +307,22 @@ export default {
|
|||
if(this.subSort === 1) {
|
||||
addProjectApi(this.projectParams).then(res => {
|
||||
console.log(res)
|
||||
/* if(res.code === 200) {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
} else {
|
||||
this.$modal.msgError(res.msg)
|
||||
} */
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
} else if(this.subSort === 2) {
|
||||
editProjectApi(this.projectParams).then(res => {
|
||||
console.log(res)
|
||||
/* if(res.code === 200) {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
} else {
|
||||
this.$modal.msgError(res.message)
|
||||
} */
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="onSubmit">确定</el-button>
|
||||
<el-button type="success" @click="onSubmit">确定</el-button>
|
||||
<el-button
|
||||
@click="
|
||||
() => {
|
||||
|
|
@ -67,20 +67,13 @@ export default {
|
|||
},
|
||||
// 校验规则
|
||||
unitsTypeParamsRules: {
|
||||
/* scrapNum: [
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入单位类型名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择施工单位',
|
||||
trigger: 'blur',
|
||||
},
|
||||
], */
|
||||
},
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -7,19 +7,38 @@ export const commonMixin = {
|
|||
},
|
||||
methods: {
|
||||
/** 新建 */
|
||||
handleAddData(level) {
|
||||
if(level == null) {
|
||||
this.$modal.msgError('请在左侧菜单选择设备类型!')
|
||||
} else if(level > 3) {
|
||||
this.$modal.msgError('该类型无法添加子类型!')
|
||||
} else {
|
||||
this.editParams = null
|
||||
this.dialogConfig.outerTitle = this.addDialogTitle
|
||||
this.dialogConfig.outerVisible = true
|
||||
}
|
||||
handleAddData() {
|
||||
this.editParams = null
|
||||
this.dialogConfig.outerTitle = this.addDialogTitle
|
||||
this.dialogConfig.outerVisible = true
|
||||
},
|
||||
/** 新建-物资类型 */
|
||||
handleAddMaData(level) {
|
||||
if(level == null) {
|
||||
this.$modal.msgError('请在左侧菜单选择设备类型!')
|
||||
} else if(level > 3) {
|
||||
this.$modal.msgError('该类型无法添加子类型!')
|
||||
} else {
|
||||
this.editParams = null
|
||||
this.dialogConfig.outerTitle = this.addDialogTitle
|
||||
this.dialogConfig.outerVisible = true
|
||||
}
|
||||
},
|
||||
/** 删除 */
|
||||
handleDeleteData(id, method) {
|
||||
this.$modal.confirm('是否确定删除').then(() => {
|
||||
console.log('确定删除--', id)
|
||||
method(id).then(res => {
|
||||
console.log(res)
|
||||
if(res.code === 200) {
|
||||
this.$modal.msgSuccess('操作成功!')
|
||||
this.$refs.tableRef.getTableList()
|
||||
}
|
||||
}).catch(err => {})
|
||||
})
|
||||
},
|
||||
/** 删除-物资类型 */
|
||||
handleDeleteMaType(id, method) {
|
||||
this.$modal.confirm('是否确定删除').then(() => {
|
||||
console.log('确定删除--', id)
|
||||
method(id).then(res => {
|
||||
|
|
@ -34,7 +53,6 @@ export const commonMixin = {
|
|||
},
|
||||
/** 编辑 */
|
||||
handleEditData(data) {
|
||||
console.log(data)
|
||||
this.editParams = data
|
||||
this.dialogConfig.outerTitle = this.editDialogTitle
|
||||
this.dialogConfig.outerVisible = true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,134 @@
|
|||
<template>
|
||||
<!-- 往来单位 新增、编辑 表单组件 -->
|
||||
<div>
|
||||
<el-form
|
||||
label-width="100px"
|
||||
size="medium"
|
||||
ref="contactUnitsParamsRef"
|
||||
:model="storageParams"
|
||||
:rules="storageParamsRules"
|
||||
>
|
||||
<el-form-item label="仓库名称" prop="name">
|
||||
<el-input v-model="storageParams.name" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="storageParams.remark" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="success" @click="onSubmit">确定</el-button>
|
||||
<el-button
|
||||
@click="
|
||||
() => {
|
||||
this.$emit('closeDialog')
|
||||
}
|
||||
"
|
||||
>取消</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
addStorageListApi,
|
||||
updateStorageListApi
|
||||
} from '@/api/material/storage'
|
||||
export default {
|
||||
name: 'FormStorage',
|
||||
props: {
|
||||
editParams: {
|
||||
type: Object,
|
||||
default: () => null,
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
if (this.editParams) {
|
||||
Object.assign(this.storageParams, this.editParams)
|
||||
this.subSort = 2
|
||||
} else {
|
||||
this.subSort = 1
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
subSort: '', // 提交类型:新增 1 / 修改 2
|
||||
storageParams: {
|
||||
name: '', // 仓库名称
|
||||
remark: '', // 备注
|
||||
},
|
||||
// 校验规则
|
||||
storageParamsRules: {
|
||||
/* pro_name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入工程名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_unit: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择施工单位',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type_of: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程类型',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程状态',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_nature: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程性质',
|
||||
trigger: 'blur',
|
||||
},
|
||||
], */
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/** 确认按钮 */
|
||||
onSubmit() {
|
||||
this.$refs.contactUnitsParamsRef.validate((valid) => {
|
||||
if (valid) {
|
||||
console.log('校验通过', this.storageParams, this.subSort)
|
||||
// 1. 表单校验通过后调后台 Api
|
||||
if(this.subSort === 1) {
|
||||
addStorageListApi(this.storageParams).then(res => {
|
||||
console.log(res)
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
}).catch(err => {})
|
||||
} else if(this.subSort === 2) {
|
||||
updateStorageListApi(this.storageParams).then(res => {
|
||||
console.log(res)
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
}).catch(err => {})
|
||||
}
|
||||
// 2. 成功之后通知父组件关闭弹框
|
||||
this.$emit('closeDialog', true)
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
::v-deep .el-select {
|
||||
width: 100%;
|
||||
}
|
||||
::v-deep .el-form-item__label{
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
export const formLabel = [
|
||||
{ f_label: '仓库名称', f_model: 'name', f_type: 'ipt' },
|
||||
]
|
||||
export const columnsList = [
|
||||
{ t_props: 'name', t_label: '仓库名称', },
|
||||
{ t_props: 'typeId', t_label: '实物库' },
|
||||
{ t_props: 'companyId', t_label: '地理位置' },
|
||||
{ t_props: 'remark', t_label: '备注' },
|
||||
]
|
||||
export const dialogConfig = {
|
||||
outerWidth: '40%',
|
||||
outerTitle: '',
|
||||
outerVisible: false,
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
<template>
|
||||
<!-- 往来单位管理页面 -->
|
||||
<div class="app-container">
|
||||
<!-- 列表 -->
|
||||
<TableModel
|
||||
:formLabel="formLabel"
|
||||
:columnsList="columnsList"
|
||||
:request-api="queryStorageListApi"
|
||||
ref="tableRef"
|
||||
>
|
||||
<template slot="btn" slot-scope="{ queryParams }">
|
||||
<el-button type="primary" @click="handleAddData()"
|
||||
>新建</el-button
|
||||
>
|
||||
<el-button type="success"
|
||||
>配置</el-button
|
||||
>
|
||||
<el-button @click="handleExportData(queryParams, 'base/customer/export', '往来单位清单')"
|
||||
>导出</el-button
|
||||
>
|
||||
</template>
|
||||
|
||||
<template slot="handle" slot-scope="{ data }">
|
||||
<el-button
|
||||
type="warning"
|
||||
size="mini"
|
||||
>解绑</el-button
|
||||
>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="handleEditData(data)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
type="danger"
|
||||
size="mini"
|
||||
@click="handleDeleteData(data.id, delStorageListApi)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
<!-- <template slot="isActive" slot-scope="{ data }">
|
||||
{{ data.isActive == '1' ? '启用' : '不启用' }}
|
||||
</template>
|
||||
<template slot="phone" slot-scope="{ data }">
|
||||
{{ phoneCrypto(data.phone) }}
|
||||
</template>-->
|
||||
</TableModel>
|
||||
|
||||
<!-- 新增以及修改时的弹框 -->
|
||||
<DialogModel
|
||||
:dialogConfig="dialogConfig"
|
||||
@closeDialogOuter="closeDialogOuter"
|
||||
>
|
||||
<template slot="outerContent">
|
||||
<!-- 新增以及修改数据的表单组件 -->
|
||||
<FormStorage
|
||||
@closeDialog="closeDialog"
|
||||
:editParams="editParams"
|
||||
/>
|
||||
</template>
|
||||
</DialogModel>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { columnsList, dialogConfig, formLabel } from './config'
|
||||
import { commonMixin } from '../mixins/common'
|
||||
import FormStorage from './components/form-storage.vue'
|
||||
import {
|
||||
queryStorageListApi,
|
||||
delStorageListApi
|
||||
} from '@/api/material/storage'
|
||||
|
||||
export default {
|
||||
name: 'storageManage',
|
||||
mixins: [commonMixin], // 混入公共方法和数据
|
||||
components: { FormStorage },
|
||||
methods: {
|
||||
queryStorageListApi,
|
||||
delStorageListApi
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
formLabel,
|
||||
columnsList,
|
||||
dialogConfig,
|
||||
addDialogTitle: '新建仓库', // 新建时弹框标题
|
||||
editDialogTitle: '修改仓库', // 修改时弹框标题
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,183 @@
|
|||
<template>
|
||||
<!-- 往来单位 新增、编辑 表单组件 -->
|
||||
<div>
|
||||
<el-form
|
||||
label-width="100px"
|
||||
size="medium"
|
||||
ref="contactUnitsParamsRef"
|
||||
:model="storageConfigParams"
|
||||
:rules="storageConfigParamsRules"
|
||||
>
|
||||
<el-form-item label="仓库名称" prop="name">
|
||||
<el-select v-model="storageConfigParams.houseId">
|
||||
<el-option
|
||||
v-for="item in storageConfigRange"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="物资名称" prop="typeId">
|
||||
<treeselect
|
||||
v-model="storageConfigParams.typeId"
|
||||
:options="typeRange"
|
||||
noChildrenText="没有数据了"
|
||||
noOptionsText="没有数据"
|
||||
noResultsText="没有搜索结果"
|
||||
placeholder="请选择所属上级"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="success" @click="onSubmit">确定</el-button>
|
||||
<el-button
|
||||
@click="
|
||||
() => {
|
||||
this.$emit('closeDialog')
|
||||
}
|
||||
"
|
||||
>取消</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
addStorageConfigListApi,
|
||||
updateStorageConfigListApi
|
||||
} from '@/api/material/storageConfig'
|
||||
import {
|
||||
queryStorageListApi
|
||||
} from '@/api/material/storage'
|
||||
import {
|
||||
queryMaTypeTreeListApi
|
||||
} from '@/api/material/type'
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
export default {
|
||||
name: 'FormStorage',
|
||||
props: {
|
||||
editParams: {
|
||||
type: Object,
|
||||
default: () => null,
|
||||
},
|
||||
},
|
||||
components: { Treeselect },
|
||||
created() {
|
||||
this.getHouseRange()
|
||||
this.getTypeRange()
|
||||
},
|
||||
mounted() {
|
||||
if (this.editParams) {
|
||||
Object.assign(this.storageConfigParams, this.editParams)
|
||||
this.subSort = 2
|
||||
} else {
|
||||
this.subSort = 1
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
subSort: '', // 提交类型:新增 1 / 修改 2
|
||||
storageConfigParams: {
|
||||
houseId: undefined, // 仓库名称
|
||||
typeId: undefined, // 物资名称
|
||||
},
|
||||
// 仓库下拉选项
|
||||
storageConfigRange: [],
|
||||
// 类型下拉选项
|
||||
typeRange: [],
|
||||
// 校验规则
|
||||
storageConfigParamsRules: {
|
||||
/* pro_name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入工程名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_unit: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择施工单位',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type_of: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程类型',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程状态',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_nature: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程性质',
|
||||
trigger: 'blur',
|
||||
},
|
||||
], */
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/** 初始化获取仓库下拉 */
|
||||
getHouseRange() {
|
||||
queryStorageListApi().then(res => {
|
||||
console.log(res)
|
||||
this.storageConfigRange = res.rows.map(item => {
|
||||
return {
|
||||
value: item.id,
|
||||
label: item.name,
|
||||
}
|
||||
})
|
||||
}).catch(err => {})
|
||||
},
|
||||
/** 初始化获取类型下拉 */
|
||||
getTypeRange() {
|
||||
queryMaTypeTreeListApi().then(res => {
|
||||
this.typeRange = res.data
|
||||
}).catch(err => {})
|
||||
},
|
||||
/** 确认按钮 */
|
||||
onSubmit() {
|
||||
this.$refs.contactUnitsParamsRef.validate((valid) => {
|
||||
if (valid) {
|
||||
console.log('校验通过', this.storageConfigParams, this.subSort)
|
||||
// 1. 表单校验通过后调后台 Api
|
||||
if(this.subSort === 1) {
|
||||
addStorageConfigListApi(this.storageConfigParams).then(res => {
|
||||
console.log(res)
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
}).catch(err => {})
|
||||
} else if(this.subSort === 2) {
|
||||
updateStorageConfigListApi(this.storageConfigParams).then(res => {
|
||||
console.log(res)
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
}).catch(err => {})
|
||||
}
|
||||
// 2. 成功之后通知父组件关闭弹框
|
||||
this.$emit('closeDialog', true)
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
::v-deep .el-select {
|
||||
width: 100%;
|
||||
}
|
||||
::v-deep .el-form-item__label{
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
export const formLabel = [
|
||||
{ f_label: '关键字', f_model: 'houseId', f_type: 'ipt' },
|
||||
]
|
||||
export const columnsList = [
|
||||
{ t_props: 'houseId', t_label: '仓库名称', },
|
||||
{ t_props: 'typeId', t_label: '物资名称' },
|
||||
// { t_props: 'companyId', t_label: '地理位置' },
|
||||
// { t_props: 'remark', t_label: '备注' },
|
||||
]
|
||||
export const dialogConfig = {
|
||||
outerWidth: '40%',
|
||||
outerTitle: '',
|
||||
outerVisible: false,
|
||||
}
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
<template>
|
||||
<!-- 往来单位管理页面 -->
|
||||
<div class="app-container">
|
||||
<!-- 列表 -->
|
||||
<TableModel
|
||||
:formLabel="formLabel"
|
||||
:columnsList="columnsList"
|
||||
:request-api="queryStorageConfigListApi"
|
||||
ref="tableRef"
|
||||
>
|
||||
<template slot="btn" slot-scope="{ queryParams }">
|
||||
<el-button type="primary" @click="handleAddData()"
|
||||
>新建</el-button
|
||||
>
|
||||
<el-button @click="handleExportData(queryParams, 'base/customer/export', '往来单位清单')"
|
||||
>导出</el-button
|
||||
>
|
||||
</template>
|
||||
|
||||
<template slot="handle" slot-scope="{ data }">
|
||||
<el-button
|
||||
type="warning"
|
||||
size="mini"
|
||||
>解绑</el-button
|
||||
>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="handleEditData(data)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
type="danger"
|
||||
size="mini"
|
||||
@click="handleDeleteData(data.id, delStorageListApi)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
<!-- <template slot="isActive" slot-scope="{ data }">
|
||||
{{ data.isActive == '1' ? '启用' : '不启用' }}
|
||||
</template>
|
||||
<template slot="phone" slot-scope="{ data }">
|
||||
{{ phoneCrypto(data.phone) }}
|
||||
</template>-->
|
||||
</TableModel>
|
||||
|
||||
<!-- 新增以及修改时的弹框 -->
|
||||
<DialogModel
|
||||
:dialogConfig="dialogConfig"
|
||||
@closeDialogOuter="closeDialogOuter"
|
||||
>
|
||||
<template slot="outerContent">
|
||||
<!-- 新增以及修改数据的表单组件 -->
|
||||
<FormStorageConfig
|
||||
@closeDialog="closeDialog"
|
||||
:editParams="editParams"
|
||||
/>
|
||||
</template>
|
||||
</DialogModel>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { columnsList, dialogConfig, formLabel } from './config'
|
||||
import { commonMixin } from '../mixins/common'
|
||||
import FormStorageConfig from './components/form-storage-config.vue'
|
||||
import {
|
||||
queryStorageConfigListApi
|
||||
} from '@/api/material/storageConfig'
|
||||
|
||||
export default {
|
||||
name: 'storageConfigManage',
|
||||
mixins: [commonMixin], // 混入公共方法和数据
|
||||
components: { FormStorageConfig },
|
||||
methods: {
|
||||
queryStorageConfigListApi
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
formLabel,
|
||||
columnsList,
|
||||
dialogConfig,
|
||||
addDialogTitle: '新建仓库', // 新建时弹框标题
|
||||
editDialogTitle: '修改仓库', // 修改时弹框标题
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,134 @@
|
|||
<template>
|
||||
<!-- 往来单位 新增、编辑 表单组件 -->
|
||||
<div>
|
||||
<el-form
|
||||
label-width="100px"
|
||||
size="medium"
|
||||
ref="contactUnitsParamsRef"
|
||||
:model="storageParams"
|
||||
:rules="storageParamsRules"
|
||||
>
|
||||
<el-form-item label="仓库名称" prop="name">
|
||||
<el-input v-model="storageParams.name" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="storageParams.remark" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="success" @click="onSubmit">确定</el-button>
|
||||
<el-button
|
||||
@click="
|
||||
() => {
|
||||
this.$emit('closeDialog')
|
||||
}
|
||||
"
|
||||
>取消</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
addStorageListApi,
|
||||
updateStorageListApi
|
||||
} from '@/api/material/storage'
|
||||
export default {
|
||||
name: 'FormStorage',
|
||||
props: {
|
||||
editParams: {
|
||||
type: Object,
|
||||
default: () => null,
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
if (this.editParams) {
|
||||
Object.assign(this.storageParams, this.editParams)
|
||||
this.subSort = 2
|
||||
} else {
|
||||
this.subSort = 1
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
subSort: '', // 提交类型:新增 1 / 修改 2
|
||||
storageParams: {
|
||||
name: '', // 仓库名称
|
||||
remark: '', // 备注
|
||||
},
|
||||
// 校验规则
|
||||
storageParamsRules: {
|
||||
/* pro_name: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入工程名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_unit: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择施工单位',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type_of: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程类型',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_type: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程状态',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
pro_nature: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择工程性质',
|
||||
trigger: 'blur',
|
||||
},
|
||||
], */
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/** 确认按钮 */
|
||||
onSubmit() {
|
||||
this.$refs.contactUnitsParamsRef.validate((valid) => {
|
||||
if (valid) {
|
||||
console.log('校验通过', this.storageParams, this.subSort)
|
||||
// 1. 表单校验通过后调后台 Api
|
||||
if(this.subSort === 1) {
|
||||
addStorageListApi(this.storageParams).then(res => {
|
||||
console.log(res)
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
}).catch(err => {})
|
||||
} else if(this.subSort === 2) {
|
||||
updateStorageListApi(this.storageParams).then(res => {
|
||||
console.log(res)
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
}).catch(err => {})
|
||||
}
|
||||
// 2. 成功之后通知父组件关闭弹框
|
||||
this.$emit('closeDialog', true)
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
::v-deep .el-select {
|
||||
width: 100%;
|
||||
}
|
||||
::v-deep .el-form-item__label{
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
export const formLabel = [
|
||||
{ f_label: '关键字', f_model: 'name', f_type: 'ipt' },
|
||||
]
|
||||
export const columnsList = [
|
||||
{ t_props: 'name', t_label: '物资名称', },
|
||||
{ t_props: 'typeId', t_label: '规格名称' },
|
||||
{ t_props: 'companyId', t_label: '物资编号' },
|
||||
{ t_props: 'remark', t_label: '单位' },
|
||||
{ t_props: 'remark', t_label: '物资状态' },
|
||||
{ t_props: 'remark', t_label: '购置日期' },
|
||||
{ t_props: 'remark', t_label: '本次检验日期' },
|
||||
|
||||
]
|
||||
export const dialogConfig = {
|
||||
outerWidth: '40%',
|
||||
outerTitle: '',
|
||||
outerVisible: false,
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
<template>
|
||||
<!-- 往来单位管理页面 -->
|
||||
<div class="app-container">
|
||||
<!-- 列表 -->
|
||||
<TableModel
|
||||
:formLabel="formLabel"
|
||||
:columnsList="columnsList"
|
||||
:request-api="queryStorageListApi"
|
||||
ref="tableRef"
|
||||
>
|
||||
<template slot="btn" slot-scope="{ queryParams }">
|
||||
<el-button type="primary" @click="handleAddData()"
|
||||
>新建</el-button
|
||||
>
|
||||
<el-button type="success"
|
||||
>配置</el-button
|
||||
>
|
||||
<el-button @click="handleExportData(queryParams, 'base/customer/export', '往来单位清单')"
|
||||
>导出</el-button
|
||||
>
|
||||
</template>
|
||||
|
||||
<template slot="handle" slot-scope="{ data }">
|
||||
<el-button
|
||||
type="warning"
|
||||
size="mini"
|
||||
>解绑</el-button
|
||||
>
|
||||
<el-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="handleEditData(data)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
type="danger"
|
||||
size="mini"
|
||||
@click="handleDeleteData(data.id, delStorageListApi)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
<!-- <template slot="isActive" slot-scope="{ data }">
|
||||
{{ data.isActive == '1' ? '启用' : '不启用' }}
|
||||
</template>
|
||||
<template slot="phone" slot-scope="{ data }">
|
||||
{{ phoneCrypto(data.phone) }}
|
||||
</template>-->
|
||||
</TableModel>
|
||||
|
||||
<!-- 新增以及修改时的弹框 -->
|
||||
<DialogModel
|
||||
:dialogConfig="dialogConfig"
|
||||
@closeDialogOuter="closeDialogOuter"
|
||||
>
|
||||
<template slot="outerContent">
|
||||
<!-- 新增以及修改数据的表单组件 -->
|
||||
<FormTrack
|
||||
@closeDialog="closeDialog"
|
||||
:editParams="editParams"
|
||||
/>
|
||||
</template>
|
||||
</DialogModel>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { columnsList, dialogConfig, formLabel } from './config'
|
||||
import { commonMixin } from '../mixins/common'
|
||||
import FormTrack from './components/form-track.vue'
|
||||
import {
|
||||
queryStorageListApi,
|
||||
delStorageListApi
|
||||
} from '@/api/material/storage'
|
||||
|
||||
export default {
|
||||
name: 'trackManage',
|
||||
mixins: [commonMixin], // 混入公共方法和数据
|
||||
components: { FormTrack },
|
||||
methods: {
|
||||
queryStorageListApi,
|
||||
delStorageListApi
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
formLabel,
|
||||
columnsList,
|
||||
dialogConfig,
|
||||
addDialogTitle: '新建仓库', // 新建时弹框标题
|
||||
editDialogTitle: '修改仓库', // 修改时弹框标题
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
@ -61,36 +61,42 @@
|
|||
<el-input v-model="typeParamsLv3.name" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- form-修改 -->
|
||||
<!-- form-修改 level1 -->
|
||||
<el-form
|
||||
label-width="100px"
|
||||
size="medium"
|
||||
ref="typeEditParamsRef"
|
||||
:model="typeEditParams"
|
||||
:rules="typeEditParamsRules"
|
||||
v-if="subSort === 2"
|
||||
:model="typeEditParamsLv1"
|
||||
:rules="typeEditParamsLv1Rules"
|
||||
v-if="subSort === 2 && editParams.level === '1'"
|
||||
>
|
||||
<el-form-item label="仓库信息" prop="store">
|
||||
<el-select
|
||||
v-model="typeEditParams.store"
|
||||
>
|
||||
<!-- <el-option
|
||||
v-for="item in unitSelRange"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>-->
|
||||
</el-select>
|
||||
<el-form-item label="类型名称" prop="constructionType">
|
||||
<el-input v-model="typeEditParamsLv1.constructionType" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工类型" prop="constructionType">
|
||||
<el-input v-model="typeEditParams.constructionType" />
|
||||
<el-form-item label="类型编码" prop="code">
|
||||
<el-input v-model="typeEditParamsLv1.code" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="物资名称" prop="materialName">
|
||||
<el-input v-model="typeEditParams.materialName" />
|
||||
<el-form-item label="检验方式" prop="materialName">
|
||||
<el-input v-model="typeEditParamsLv1.materialName" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物资类型" prop="materialType">
|
||||
<el-input v-model="typeEditParams.materialType" />
|
||||
<el-form-item label="检验结果" prop="materialType">
|
||||
<el-input v-model="typeEditParamsLv1.materialType" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- form-修改 level2 -->
|
||||
<el-form
|
||||
label-width="100px"
|
||||
size="medium"
|
||||
ref="typeEditParamsRef"
|
||||
:model="typeEditParamsLv2"
|
||||
:rules="typeEditParamsLv2Rules"
|
||||
v-if="subSort === 2 && editParams.level === '2'"
|
||||
>
|
||||
<el-form-item label="类型名称" prop="constructionType">
|
||||
<el-input v-model="typeEditParamsLv2.constructionType" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型编码" prop="code">
|
||||
<el-input v-model="typeEditParamsLv2.code" disabled />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- 新增-按钮群 -->
|
||||
|
|
@ -159,11 +165,19 @@ export default {
|
|||
},
|
||||
created() {
|
||||
console.log(this.sendData)
|
||||
console.log(this.editParams)
|
||||
// if(this.extraData == null) this.$modal.msgError("请在左侧菜单选择设备类型!");
|
||||
},
|
||||
mounted() {
|
||||
if (this.editParams) {
|
||||
Object.assign(this.typeEditParams, this.editParams)
|
||||
switch(this.editParams.level) {
|
||||
case '1':
|
||||
Object.assign(this.typeEditParamsLv1, this.editParams)
|
||||
break;
|
||||
case '2':
|
||||
Object.assign(this.typeEditParamsLv2, this.editParams)
|
||||
break;
|
||||
}
|
||||
this.subSort = 2
|
||||
} else {
|
||||
this.subSort = 1
|
||||
|
|
@ -214,12 +228,17 @@ export default {
|
|||
code: undefined,
|
||||
name: undefined,
|
||||
},
|
||||
// 物资修改表单
|
||||
typeEditParams: {
|
||||
store: '', // 仓库信息
|
||||
constructionType: '', // 施工类型
|
||||
materialName: '', // 物资名称
|
||||
materialType: '', // 物资类型
|
||||
// 物资修改表单 Lv1
|
||||
typeEditParamsLv1: {
|
||||
constructionType: undefined, // 类型名称
|
||||
code: undefined, // 类型编码
|
||||
materialName: undefined, // 检验方式
|
||||
materialType: undefined, // 检验结果
|
||||
},
|
||||
// 物资修改表单 Lv2
|
||||
typeEditParamsLv2: {
|
||||
constructionType: undefined, // 类型名称
|
||||
code: undefined, // 类型编码
|
||||
},
|
||||
fileList: [],
|
||||
// 租赁单位下拉框
|
||||
|
|
@ -227,7 +246,7 @@ export default {
|
|||
// 租赁工程下拉框
|
||||
projSelRange: [],
|
||||
// 校验规则
|
||||
typeEditParamsRules: {
|
||||
typeEditParamsLv1Rules: {
|
||||
/* scrapNum: [
|
||||
{
|
||||
required: true,
|
||||
|
|
@ -257,6 +276,7 @@ export default {
|
|||
},
|
||||
], */
|
||||
},
|
||||
typeEditParamsLv2Rules: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
style="display: flex; flex-direction: column"
|
||||
>
|
||||
<template slot="btn" slot-scope="{ queryParams }">
|
||||
<el-button type="primary" @click="handleAddData(transLevel)"
|
||||
<el-button type="primary" @click="handleAddMaData(transLevel)"
|
||||
>新增</el-button>
|
||||
<el-button @click="handleExportData(queryParams, 'base/agreement/export', '物资清单')"
|
||||
>导出</el-button>
|
||||
|
|
@ -65,7 +65,7 @@
|
|||
<el-button
|
||||
type="danger"
|
||||
size="mini"
|
||||
@click="handleDeleteData(data.id, delSingleMa)"
|
||||
@click="handleDeleteMaType(data.id, delSingleMa)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ module.exports = {
|
|||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||
[process.env.VUE_APP_BASE_API]: {
|
||||
// target: `http://192.168.2.13:18080`, // 代理的后台ip 端口 解决请求跨域
|
||||
// target: `http://172.20.10.2:18080`, // 阮
|
||||
// target: `http://192.168.2.43:18080`, // 阮
|
||||
target: `http://192.168.2.21:18080`, // 马
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
|
|
|
|||
Loading…
Reference in New Issue