清单问题下修改-各模块完善

This commit is contained in:
FrancisHu 2024-08-15 18:03:14 +08:00
parent 406517cdf0
commit 8f6c3da42d
21 changed files with 751 additions and 130 deletions

View File

@ -27,3 +27,10 @@ export const queryContactUnitsSelApi = (data) => {
params: data
})
}
/** 获取所属分公司树 */
export const queryCompanyTreeApi = (data) => {
return request.get('/base/customer/deptTree', {
params: data
})
}

View File

@ -5,22 +5,22 @@ import request from '@/utils/request'
/** 物资仓库查询 */
export const queryStorageListApi = (data) => {
return request.get('/material/maHouse/list', {
return request.get('/base/maHouse/list', {
params: data
})
}
/** 物资仓库新增 */
export const addStorageListApi = (data) => {
return request.post('/material/maHouse/add', data)
return request.post('/base/maHouse/add', data)
}
/** 物资仓库修改 */
export const updateStorageListApi = (data) => {
return request.post('/material/maHouse/update', data)
return request.post('/base/maHouse/update', data)
}
/** 物资仓库删除 */
export const delStorageListApi = (id) => {
return request.delete(`/material/maHouse/${id}`)
return request.delete(`/base/maHouse/${id}`)
}

View File

@ -5,18 +5,18 @@ import request from '@/utils/request'
/** 物资仓库配置查询 */
export const queryStorageConfigListApi = (data) => {
return request.get('/material/ma_house_set/list', {
return request.get('/base/ma_house_set/list', {
params: data
})
}
/** 物资仓库配置新增 */
export const addStorageConfigListApi = (data) => {
return request.post('/material/ma_house_set/add', data)
return request.post('/base/ma_house_set/add', data)
}
/** 物资仓库配置修改 */
export const updateStorageConfigListApi = (data) => {
return request.post('/material/ma_house_set/update', data)
return request.post('/base/ma_house_set/update', data)
}

View File

@ -5,32 +5,32 @@ import request from '@/utils/request'
/** 物资类型树查询 */
export const queryMaTypeTreeListApi = (data) => {
return request.get('/material/maType/getMaTypeList', {
return request.get('/base/maType/getMaTypeList', {
params: data
})
}
/** 树形下物资查询 */
export const queryMaListApi = (data) => {
return request.get('/material/maType/getListByMaType', {
return request.get('/base/maType/getListByMaType', {
params: data
})
}
/** 新增时查询id */
export const queryIdWhenAddMa = (data) => {
return request.get('/material/maType/addMaType', {
return request.get('/base/maType/addMaType', {
params: data
})
}
/** 提交物资添加表单 */
export const submitAddForm = (data) => {
return request.post('/material/maType/add', data)
return request.post('/base/maType/add', data)
}
/** 删除单个物资 */
export const delSingleMa = (id) => {
return request.delete(`/material/maType/${id}` )
return request.delete(`/base/maType/${id}` )
}

View File

@ -75,7 +75,7 @@
<!-- 按钮集群 -->
<el-row class="btn-container">
<div class="btn-handler">
<slot name="btn" :pageParams="queryParams"></slot>
<slot name="btn" :queryParams="queryParams"></slot>
</div>
<ToolbarModel
:showSearch.sync="showSearch"
@ -95,6 +95,7 @@
select-on-indeterminate
style="width: 100%"
v-loading="loading"
@selection-change="handleSelectionChange">
>
<el-table-column
type="selection"
@ -209,6 +210,8 @@ export default {
},
//
tableList: [],
//
idList: undefined,
//
total: 0,
//
@ -301,7 +304,14 @@ export default {
queryTableList(params) {
Object.assign(this.queryParams, params)
this.getTableList()
},
handleSelectionChange(e) {
this.idList = e.map(item => item.id)
console.log(this.idList)
this.$emit('transIdList', this.idList)
}
},
}
</script>

View File

@ -0,0 +1,28 @@
<template>
<!-- 页头提示 -->
<el-page-header @back="goBack" :content="pageContent"> </el-page-header>
</template>
<script>
export default {
props: {
pageContent: {
type: String,
default: '详情',
},
},
methods: {
goBack() {
this.$emit('goBack')
},
},
}
</script>
<style>
.el-page-header {
padding-bottom: 5px;
margin-bottom: 10px;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
</style>

View File

@ -36,11 +36,13 @@ export const commonMixin = {
console.log('导入--')
},
/** 导出数据 */
handleExportData(data, url, fileName) {
handleExportData(data, url, fileName, queryParams) {
console.log(data, queryParams, '111111')
this.download(
url,
{
...data
// ...queryParams,
dataCondition: data
},
`${fileName}_${new Date().getTime()}.xlsx`,
)

View File

@ -81,20 +81,22 @@
<el-col :span="12">
<el-form-item label="合同附件" prop="url">
<el-upload
:http-request="(obj) => imgUpLoad(obj)"
:http-request="(obj) => uploadData(obj)"
action="#"
:file-list="fileList"
:show-file-list="false"
list-type="picture-card"
accept=".png,.jpg,.jpeg"
:on-exceed="fileExceed"
:on-remove="handleRemove"
drag
:limit="3"
>
<img
<!-- <img
v-if="protocolParams.url"
:src="protocolParams.url"
style="width: 140px; height: 140px"
class="avatar"
/>
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
/>-->
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
</el-form-item>
</el-col>
@ -157,15 +159,20 @@ export default {
return {
subSort: '', // 1 / 2
protocolParams: {
customer: '', //
authorizingPerson: '', //
project: '', //
authorizingPhone: '', //
contractNumber: '', //
startTime: '', //
remark: '', //
url: '', //
customer: undefined, //
authorizingPerson: undefined, //
project: undefined, //
authorizingPhone: undefined, //
contractNumber: undefined, //
startTime: undefined, //
remark: undefined, //
url: undefined, //
},
//
picList: [],
//
picNameList: [],
//
fileList: [],
//
unitSelRange: [],
@ -229,17 +236,34 @@ export default {
})
}).catch(err => {})
},
/** 上传图片 */
imgUpLoad(param) {
/** 上传图片/文件 */
uploadData(param) {
console.log(param)
imgUpLoad(param).then(res => {
console.log(res, process.env.VUE_APP_BASE_API)
this.protocolParams.url = res.data.url
console.log(res)
this.picList.push(res.data.url)
this.picNameList.push(res.data.name.split('_')[0])
}).catch(err => {})
},
/** 文件变化 */
dataChange(e) {
console.log(e)
this.fileList.push(e.raw)
},
/** 移除文件 */
handleRemove(file) {
console.log(file)
console.log(this.picNameList)
// this.fileList = this.fileList.filter(item => item.uid !== e.uid)
},
/** 文件超出3个 */
fileExceed() {
this.$modal.msgError('最多上传3个图片或文件')
},
/** 确认按钮 */
onSubmit() {
this.$refs.protocolParamsRef.validate((valid) => {
console.log(this.picList)
/* this.$refs.protocolParamsRef.validate((valid) => {
if (valid) {
console.log('校验通过', this.protocolParams, this.subSort)
// 1. Api
@ -259,7 +283,7 @@ export default {
// 2.
this.$emit('closeDialog', true)
}
})
}) */
},
},
}

View File

@ -12,10 +12,24 @@
<el-input v-model="contactUnitsParams.name" />
</el-form-item>
<el-form-item label="单位类型" prop="typeId">
<el-select v-model="contactUnitsParams.typeId"></el-select>
<el-select v-model="contactUnitsParams.typeId">
<el-option
v-for="item in customerRange"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="所属分公司" prop="companyId">
<el-select v-model="contactUnitsParams.companyId"></el-select>
<treeselect
v-model="contactUnitsParams.companyId"
:options="companyRange"
noChildrenText="没有数据了"
noOptionsText="没有数据"
noResultsText="没有搜索结果"
placeholder="请选择所属上级"
/>
</el-form-item>
<el-form-item label="材料员" prop="materialClerk">
<el-input v-model="contactUnitsParams.materialClerk" />
@ -50,8 +64,14 @@
<script>
import {
addContactUnitsApi,
editContactUnitsApi
editContactUnitsApi,
queryCompanyTreeApi
} from '@/api/base/customer'
import {
queryUnitTypeListApi
} from '@/api/base/unitType'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
name: 'FormContactUnits',
props: {
@ -60,6 +80,10 @@ export default {
default: () => null,
},
},
components: { Treeselect },
created() {
this.getRanges()
},
mounted() {
if (this.editParams) {
Object.assign(this.contactUnitsParams, this.editParams)
@ -79,6 +103,10 @@ export default {
phone: undefined, //
isActive: '1', //
},
//
customerRange: [],
//
companyRange: [],
//
contactUnitsParamsRules: {
name: [
@ -106,6 +134,20 @@ export default {
}
},
methods: {
/** 获取各类下拉选 */
async getRanges() {
//
let unitRes = await queryUnitTypeListApi()
this.customerRange = unitRes.rows.map(item => {
return {
label: item.name,
value: item.id
}
})
//
let companyRes = await queryCompanyTreeApi()
this.companyRange = companyRes.data
},
/** 确认按钮 */
onSubmit() {
this.$refs.contactUnitsParamsRef.validate((valid) => {

View File

@ -0,0 +1,180 @@
<template>
<!-- 往来单位 人员配置 表单组件 -->
<div class="app-container">
<el-col :span="4" :xs="24" style="margin-right: 15px">
<div class="head-container">
<el-input
v-model="typeName"
placeholder="请输入人员名称"
clearable
maxlength="50"
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
</div>
<div class="head-container">
<el-tree
style="height: 700px; overflow: scroll"
:data="treeOptions"
:props="defaultProps"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
node-key="id"
default-expand-all
highlight-current
@node-click="handleNodeClick"
>
<span class="custom-tree-node" slot-scope="{ node, data }" style="font-size: 14px">
<i v-if="node.level <= 3" class="el-icon-folder" style="color: #fabd16" />
<i v-else-if="node.level > 3" class="el-icon-document" style="color: #C0C0C0" />
{{ data.label }}
</span>
</el-tree>
</div>
</el-col>
<!-- 表格 -->
<TableModel
:formLabel="formLabel"
:columnsList="columnsList"
:request-api="queryContactUnitsListApi"
:show-sel="false"
ref="tableRef"
style="display: flex; flex-direction: column"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button type="primary"
>绑定</el-button>
<!-- <el-button @click="handleExportData(queryParams, 'base/agreement/export', '物资清单')"
>导出</el-button>-->
</template>
<template slot="handle" slot-scope="{ data }">
<el-button
type="info"
size="mini"
v-if="data.level === '4'"
>查看</el-button
>
<el-button
type="primary"
size="mini"
@click="handleEditData(data)"
>编辑</el-button
>
<!-- <el-button
type="danger"
size="mini"
@click="handleDeleteMaType(data.id, delSingleMa)"
>删除</el-button
>-->
</template>
<!-- <template slot="url" slot-scope="{ data }">
<img :src="data.url" style="width: 50px; height: 50px">
</template>-->
</TableModel>
</div>
</template>
<script>
import { formLabel, columnsList, dialogConfig } from '../config'
import { commonMixin } from '../../mixins/common'
import {
queryMaTypeTreeListApi,
queryMaListApi,
delSingleMa
} from '@/api/material/type'
import {
deleteContactUnitsApi,
queryContactUnitsListApi
} from '@/api/base/customer'
export default {
name: 'PersonConfig',
mixins: [commonMixin], //
props: {
},
created() {
this.getTreeData()
},
watch: {
//
typeName(val) {
this.$refs.tree.filter(val)
},
},
mounted() {
},
data() {
return {
formLabel,
columnsList,
dialogConfig,
//
typeName: undefined,
//
treeOptions: undefined,
//
rootOpt: [
{
companyId: null,
id: 0,
label: '人员列表',
level: 0,
parentId: null,
children: []
}
],
//
defaultProps: {
children: 'children',
label: 'label',
},
}
},
methods: {
queryContactUnitsListApi,
//
getTreeData() {
queryMaTypeTreeListApi().then(res => {
this.rootOpt[0].children = []
res.data.forEach(item => {
this.rootOpt[0].children.push(item)
})
this.treeOptions = this.rootOpt
// this.treeOptions = res.data
}).catch(err => {})
},
// -
filterNode(value, data) {
if (!value) return true
return data.label.indexOf(value) !== -1
},
// -
handleNodeClick(data) {
console.log(data)
/* queryMaListApi({
typeId: data.id
}).then(res => {
this.transInfo = res.data.rows
console.log(this.transInfo)
}) */
this.transLevel = data.level
this.transData = data
this.$refs.tableRef.queryTableList({
code: data.code
})
},
},
}
</script>
<style scoped>
::v-deep .el-select {
width: 100%;
}
::v-deep .el-form-item__label{
font-weight: normal;
}
</style>

View File

@ -4,8 +4,8 @@ export const formLabel = [
]
export const columnsList = [
{ t_props: 'name', t_label: '单位名称', },
{ t_props: 'typeId', t_label: '单位类型' },
{ t_props: 'companyId', t_label: '所属分公司' },
{ t_props: 'typeName', t_label: '单位类型' },
{ t_props: 'companyName', t_label: '所属分公司' },
{ t_props: 'materialClerk', t_label: '材料员', },
{ t_props: 'phone', t_label: '联系电话', t_slot: 'phone' },
{ t_props: 'isActive', t_label: '状态', t_slot: 'isActive' },

View File

@ -1,18 +1,26 @@
<template>
<!-- 往来单位管理页面 -->
<div class="app-container">
<PageHeader
v-if="isShowComponent !== 'Index'"
:pageContent="pageContent"
@goBack="goBack"
/>
<!-- 列表 -->
<TableModel
:formLabel="formLabel"
:columnsList="columnsList"
:request-api="queryContactUnitsListApi"
ref="tableRef"
v-if="isShowComponent === 'Index'"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button type="primary" @click="handleAddData()"
>新建</el-button
>
<el-button type="success" @click="isShowComponent = 'person-config'"
>人员配置</el-button
>
<el-button @click="handleExportData(queryParams, 'base/customer/export', '往来单位清单')"
>导出</el-button
>
@ -53,19 +61,27 @@
/>
</template>
</DialogModel>
<person-config
v-if="isShowComponent === 'person-config'"
>
</person-config>
</div>
</template>
<script>
import PageHeader from '@/components/pageHeader'
import { columnsList, dialogConfig, formLabel } from './config'
import { commonMixin } from '../mixins/common'
import FormContactUnits from './components/form-contact-units.vue'
import PersonConfig from './components/person-config.vue'
import { deleteContactUnitsApi, queryContactUnitsListApi } from '@/api/base/customer'
export default {
name: 'ContactUnits',
mixins: [commonMixin], //
components: { FormContactUnits },
components: { FormContactUnits, PersonConfig, PageHeader },
methods: {
queryContactUnitsListApi,
deleteContactUnitsApi,
@ -78,9 +94,14 @@ export default {
}
return phoneNumber
} */
goBack() {
this.isShowComponent = 'Index'
}
},
data() {
return {
isShowComponent: 'Index',
pageContent: '往来人员配置',
formLabel,
columnsList,
dialogConfig,

View File

@ -1,10 +0,0 @@
<template>
<!-- 机具供应商管理 -->
<div> 机具供应商 </div>
</template>
<script>
export default {}
</script>
<style></style>

View File

@ -24,16 +24,14 @@
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="实施单位" prop="impUnit">
<el-select
v-model="projectParams.impUnit"
>
<el-option
v-for="item in proSelRanges.pro_unit_range"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
<treeselect
v-model="projectParams.impUnit"
:options="proSelRanges.pro_unit_range"
noChildrenText="没有数据了"
noOptionsText="没有数据"
noResultsText="没有搜索结果"
placeholder="请选择所属上级"
/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -115,7 +113,7 @@
<el-form-item label="关联i8工程" prop="isMatch">
<span
style="box-sizing: border-box; padding: 5px 10px; background-color: #00afff; color: #fff; border-radius: 10px"
>{{ projectParams.proId === null || projectParams.proId === '' ? '未关联' : '已关联' }}</span>
>{{ projectParams.proId === null || projectParams.proId === undefined || projectParams.proId === '' ? '未 联' : '已 联' }}</span>
<!-- <el-switch
v-model="projectParams.isMatch"
active-color="#13ce66"
@ -160,8 +158,10 @@ import {
queryProjectNatureApi
} from '@/api/base/project.js'
import {
queryContactUnitsSelApi
queryCompanyTreeApi
} from '@/api/base/customer'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
name: 'FormProject',
props: {
@ -170,11 +170,9 @@ export default {
default: () => null,
},
},
components: { Treeselect },
created() {
this.getUnitRange()
this.getProjTypeRange()
this.getProjStatusRange()
this.getProjNatureRange()
this.getRanges()
},
mounted() {
console.log(this.editParams)
@ -252,51 +250,34 @@ export default {
},
methods: {
/** 获取各类下拉框 */
/** 获取往来单位下拉框 */
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 => {})
async getRanges() {
//
let unitRes = await queryCompanyTreeApi()
this.proSelRanges.pro_unit_range = unitRes.data
//
let typeRes = await queryProjectTypeApi()
this.proSelRanges.pro_type_range = typeRes.data.data.map(item => {
return {
label: item.dictLabel,
value: item.dictCode
}
})
//
let statRes = await queryProjectStatusApi()
this.proSelRanges.pro_stats_range = statRes.data.data.map(item => {
return {
label: item.dictLabel,
value: item.dictCode
}
})
//
let natureRes = await queryProjectNatureApi()
this.proSelRanges.pro_nature_range = natureRes.data.data.map(item => {
return {
label: item.dictLabel,
value: item.dictCode
}
})
},
/** 确认按钮 */
onSubmit() {

View File

@ -5,13 +5,13 @@ export const formLabel = [
export const columnsList = [
{ t_props: 'name', t_label: '工程项目名称', },
{ t_props: 'impUnit', t_label: '实施单位' },
{ t_props: 'projectType', t_label: '工程类型' },
{ t_props: 'projectTypeName', t_label: '工程类型' },
{ t_props: 'proId', t_label: 'i8工程id', },
{ t_props: 'isMatch', t_label: '是否匹配i8工程', t_slot: 'isMatch' },
{ t_props: 'htzt', t_label: '合同主体', },
{ t_props: 'manager', t_label: '项目经理', },
{ t_props: 'phone', t_label: '联系电话', t_slot: 'phone' },
{ t_props: 'stats', t_label: '工程状态', },
{ t_props: 'statsName', t_label: '工程状态' },
{ t_props: 'remark', t_label: '备注', },
]

View File

@ -7,13 +7,13 @@
:columnsList="columnsList"
:request-api="queryProjectListApi"
ref="tableRef"
@transIdList="getIdList"
>
<template slot="btn" slot-scope="{ queryParams }">
<el-button type="primary" @click="handleAddData()"
>新建</el-button
>
<el-button @click="handleExportData(queryParams, 'base/project/export', '工程清单')"
<el-button @click="handleExportData(exportList, 'base/project/export', '工程清单', queryParams)"
>导出</el-button
>
</template>
@ -62,7 +62,13 @@ import FormProject from './components/form-project'
import { queryProjectListApi, deleteProjectApi } from '@/api/base/project'
export default {
name: 'ProjectManage',
methods: { queryProjectListApi, deleteProjectApi },
methods: {
queryProjectListApi,
deleteProjectApi,
getIdList(idList) {
this.exportList = idList
}
},
mixins: [commonMixin], //
components: {
FormProject,
@ -71,6 +77,8 @@ export default {
return {
//
formLabel,
// id
exportList: undefined,
//
columnsList,
//

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: 'a', },
{ t_props: 'typeId', t_label: 'b' },
// { 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">
<!-- 新增以及修改数据的表单组件 -->
<FormMasupplier
@closeDialog="closeDialog"
:editParams="editParams"
/>
</template>
</DialogModel>
</div>
</template>
<script>
import { columnsList, dialogConfig, formLabel } from './config'
import { commonMixin } from '../mixins/common'
import FormMasupplier from './components/form-masupplier.vue'
import {
queryStorageConfigListApi
} from '@/api/material/storageConfig'
export default {
name: 'storageConfigManage',
mixins: [commonMixin], //
components: { FormMasupplier },
methods: {
queryStorageConfigListApi
},
data() {
return {
formLabel,
columnsList,
dialogConfig,
addDialogTitle: '新建仓库', //
editDialogTitle: '修改仓库', //
}
},
}
</script>

View File

@ -76,11 +76,11 @@
<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="typeEditParamsLv1.materialName" />
<el-form-item label="检验方式" prop="testType">
<el-input v-model="typeEditParamsLv1.testType" />
</el-form-item>
<el-form-item label="检验结果" prop="materialType">
<el-input v-model="typeEditParamsLv1.materialType" />
<el-form-item label="检验结果" prop="testResult">
<el-input v-model="typeEditParamsLv1.testResult" />
</el-form-item>
</el-form>
<!-- form-修改 level2 -->
@ -98,6 +98,12 @@
<el-form-item label="类型编码" prop="code">
<el-input v-model="typeEditParamsLv2.code" disabled />
</el-form-item>
<el-form-item label="检验方式" prop="testType">
<el-input v-model="typeEditParamsLv2.testType" />
</el-form-item>
<el-form-item label="检验结果" prop="testResult">
<el-input v-model="typeEditParamsLv2.testResult" />
</el-form-item>
</el-form>
<!-- form-修改 level3 -->
<el-form
@ -114,6 +120,12 @@
<el-form-item label="类型编码" prop="code">
<el-input v-model="typeEditParamsLv3.code" disabled />
</el-form-item>
<el-form-item label="检验方式" prop="testType">
<el-input v-model="typeEditParamsLv3.testType" />
</el-form-item>
<el-form-item label="检验结果" prop="testResult">
<el-input v-model="typeEditParamsLv3.testResult" />
</el-form-item>
</el-form>
<!-- form-修改 level4 -->
<el-form
@ -175,12 +187,28 @@
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="是否需要试验" prop="ifExam">
<el-select v-model="typeEditParamsLv4.ifExam"></el-select>
<el-select v-model="typeEditParamsLv4.ifExam">
<el-option
v-for="item in ifTestRange"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="管理模式" prop="manageType">
<el-select v-model="typeEditParamsLv4.manageType"></el-select>
<el-select v-model="typeEditParamsLv4.manageType">
<el-option
v-for="item in manageTypeRange"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
@ -337,18 +365,22 @@ export default {
typeEditParamsLv1: {
constructionType: undefined, //
code: undefined, //
materialName: undefined, //
materialType: undefined, //
testType: undefined, //
testResult: undefined, //
},
// Lv2
typeEditParamsLv2: {
constructionType: undefined, //
code: undefined, //
testType: undefined, //
testResult: undefined, //
},
// Lv3
typeEditParamsLv3: {
constructionType: undefined, //
code: undefined, //
testType: undefined, //
testResult: undefined, //
},
// Lv4
typeEditParamsLv4: {
@ -404,7 +436,17 @@ export default {
},
typeEditParamsLv2Rules: {},
typeEditParamsLv3Rules: {},
typeEditParamsLv4Rules: {}
typeEditParamsLv4Rules: {},
//
ifTestRange: [
{ label: '是', value: 1 },
{ label: '否', value: 0 },
],
manageTypeRange: [
{ label: '编码追溯', value: 0 },
{ label: '数量+编码', value: 1 },
{ label: '数量', value: 2 },
]
}
},
methods: {

View File

@ -10,7 +10,7 @@ export const columnsList = [
{ t_props: 'specificationCode', t_label: '规格型号' },
]
export const dialogConfig = {
outerWidth: '40%',
outerWidth: '60%',
outerTitle: '',
outerVisible: false,
}