物资管理模块部分搭建-清单问题修改

This commit is contained in:
FrancisHu 2024-08-14 18:36:07 +08:00
parent 9143abe7b6
commit bb0a53fc52
19 changed files with 1027 additions and 108 deletions

View File

@ -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
})
}

View File

@ -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}`)
}

View File

@ -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)
}

View File

@ -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',
},
], */
},
}
},

View File

@ -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: '', // i8id
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, // i8id
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)
})

View File

@ -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',
},
], */
},
}
},

View File

@ -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

View File

@ -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>

View File

@ -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,
}

View File

@ -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>

View File

@ -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>

View File

@ -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,
}

View File

@ -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>

View File

@ -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>

View File

@ -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,
}

View File

@ -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>

View File

@ -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: {

View File

@ -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>

View File

@ -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: {