add 设备表、产品表 & 同步DialogJustForm到DialogWithMenu
This commit is contained in:
149
src/views/modules/pms/product/config.js
Normal file
149
src/views/modules/pms/product/config.js
Normal file
@@ -0,0 +1,149 @@
|
||||
import TableOperaionComponent from '@/components/noTemplateComponents/operationComponent'
|
||||
import TableTextComponent from '@/components/noTemplateComponents/detailComponent'
|
||||
import StatusComponent from '@/components/noTemplateComponents/statusComponent'
|
||||
import { timeFilter, dictFilter } from '@/utils/filters'
|
||||
|
||||
export default function () {
|
||||
|
||||
const tableProps = [
|
||||
{ prop: 'createTime', label: '添加时间', filter: timeFilter },
|
||||
{ prop: 'name', label: '产品名称' },
|
||||
{ prop: 'code', label: '产品编码' },
|
||||
{ prop: 'typeDictValue', label: '产品类型', filter: dictFilter('product_type') },
|
||||
{ prop: 'specifications', label: '规格' },
|
||||
{ prop: 'unitDictValue', label: '单位', filter: dictFilter('unit') },
|
||||
{ prop: 'weight', label: '重量(kg)' },
|
||||
{ prop: 'remark', label: '备注' },
|
||||
{ prop: 'description', label: '附件信息', subcomponent: TableTextComponent, buttonContent: '查看附件' },
|
||||
{
|
||||
prop: 'operations',
|
||||
name: '操作',
|
||||
fixed: 'right',
|
||||
width: 120,
|
||||
subcomponent: TableOperaionComponent,
|
||||
options: ['edit', { name: 'delete', permission: 'pms:product:delete' }]
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
const headFormFields = [
|
||||
{
|
||||
label: '关键字',
|
||||
prop: 'key',
|
||||
input: true,
|
||||
default: { value: '' },
|
||||
bind: { placeholder: '请输入产品名称或编码' }
|
||||
},
|
||||
{
|
||||
button: {
|
||||
type: 'primary',
|
||||
name: '查询'
|
||||
}
|
||||
},
|
||||
{
|
||||
button: {
|
||||
type: 'plain',
|
||||
name: '新增',
|
||||
permission: 'pms:product:save'
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
const dictList = JSON.parse(localStorage.getItem('dictList') || {})
|
||||
const dialogConfigs = {
|
||||
menu: [{ name: '产品信息' }, { name: '产品属性信息', onlyEditMode: false }],
|
||||
form: {
|
||||
rows: [
|
||||
[
|
||||
{ input: true, label: '产品名称/砖型名称', prop: 'name', rules: { required: true, message: 'not empty', trigger: 'blur' }, elparams: { placeholder: '请输入设备名称' } },
|
||||
{ input: true, label: '产品编码/砖型编码', prop: 'code', rules: { required: true, message: 'not empty', trigger: 'blur' }, elparams: { placeholder: '请输入设备名称编码' } },
|
||||
// { input: true, label: '版本号', prop: 'version', elparams: { placeholder: '请输入版本号' } },
|
||||
{
|
||||
select: true,
|
||||
label: '产品类型',
|
||||
prop: 'typeDictValue',
|
||||
options: 'product_type' in dictList ? dictList['product_type'].map(item => ({ value: item.dictValue, label: item.dictLabel })) : [],
|
||||
elparams: { placeholder: '选择一个产品类型' }
|
||||
},
|
||||
],
|
||||
[
|
||||
{ input: true, label: '规格', prop: 'specifications', rules: { required: true, message: 'not empty', trigger: 'blur' }, elparams: { placeholder: '请输入设备名称编码' } },
|
||||
{ input: true, label: '单位平方数', prop: 'code', rules: { required: true, message: 'not empty', trigger: 'blur' }, elparams: { placeholder: '请输入设备名称编码' } },
|
||||
{
|
||||
select: true,
|
||||
label: '单位',
|
||||
prop: 'unitDictValue',
|
||||
options: 'unit' in dictList ? dictList['unit'].map(item => ({ value: item.dictValue, label: item.dictLabel })) : [],
|
||||
elparams: { placeholder: '选择一个产品类型' }
|
||||
},
|
||||
],
|
||||
[{ textarea: true, label: '备注', prop: 'remark', elparams: { placeholder: '备注' } }],
|
||||
],
|
||||
operations: [
|
||||
{ name: 'add', label: '保存', type: 'primary', permission: 'pms:product:save', showOnEdit: false },
|
||||
{ name: 'update', label: '更新', type: 'primary', permission: 'pms:product:update', showOnEdit: true },
|
||||
{ name: 'reset', label: '重置', type: 'warning', showAlways: true },
|
||||
// { name: 'cancel', label: '取消', showAlways: true },
|
||||
],
|
||||
},
|
||||
table: {
|
||||
// extraParams: ['stepId'],
|
||||
extraParams: 'productId',
|
||||
props: [
|
||||
{ prop: 'createTime', label: '创建时间' },
|
||||
{ prop: 'productId', label: '产品ID' },
|
||||
{ prop: 'attrName', label: '属性名称', isEditField: true },
|
||||
{ prop: 'attrValue', label: '属性值', isEditField: true },
|
||||
{
|
||||
prop: 'operations',
|
||||
name: '操作',
|
||||
fixed: 'right',
|
||||
width: 120,
|
||||
subcomponent: TableOperaionComponent,
|
||||
options: [
|
||||
{ name: 'edit', permission: 'pms:product:update' },
|
||||
{ name: 'delete', permission: 'pms:product:delete' },
|
||||
]
|
||||
}
|
||||
],
|
||||
data: [
|
||||
// TOOD 暂时用不到,但获取可以考虑把拉取接口数据的函数迁移到此文件(没有太大必要)
|
||||
],
|
||||
},
|
||||
|
||||
subDialog: {
|
||||
extraParam: 'productId',
|
||||
rows: [
|
||||
[
|
||||
{ input: true, label: '属性名称', prop: 'attrName', elparams: { placeholder: '请输入属性名称' } },
|
||||
{ input: true, label: '属性值', prop: 'attrValue', rules: { required: true, message: 'not empty', trigger: 'blur' }, elparams: { placeholder: '请输入属性值' } },
|
||||
],
|
||||
[
|
||||
{ textarea: true, label: '备注', prop: 'remark', elparams: { placeholder: '添加备注' } },
|
||||
]
|
||||
],
|
||||
operations: [
|
||||
{ name: 'add', label: '保存', type: 'primary', permission: 'pms:product:save', showOnEdit: false },
|
||||
{ name: 'update', label: '更新', type: 'primary', permission: 'pms:product:update', showOnEdit: true },
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
return {
|
||||
dialogConfigs,
|
||||
tableConfig: {
|
||||
table: null, // 此处可省略,el-table 上的配置项
|
||||
column: tableProps, // el-column-item 上的配置项
|
||||
},
|
||||
headFormConfigs: {
|
||||
rules: null, // 名称是由 BaseSearchForm.vue 组件固定的
|
||||
fields: headFormFields // 名称是由 BaseSearchForm.vue 组件固定的
|
||||
},
|
||||
urls: {
|
||||
base: '/pms/product',
|
||||
page: '/pms/product/page'
|
||||
}
|
||||
}
|
||||
}
|
||||
32
src/views/modules/pms/product/index.vue
Normal file
32
src/views/modules/pms/product/index.vue
Normal file
@@ -0,0 +1,32 @@
|
||||
<template>
|
||||
<ListViewWithHead :table-config="tableConfig" :head-config="headFormConfigs" :dialog-configs="dialogConfigs" :listQueryExtra="['key']" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import initConfig from './config';
|
||||
import ListViewWithHead from '@/views/atomViews/ListViewWithHead.vue';
|
||||
|
||||
export default {
|
||||
name: 'BlenderView',
|
||||
components: { ListViewWithHead },
|
||||
provide() {
|
||||
return {
|
||||
urls: this.allUrls
|
||||
}
|
||||
},
|
||||
data() {
|
||||
const { tableConfig, headFormConfigs, urls, dialogConfigs } = initConfig.call(this);
|
||||
return {
|
||||
tableConfig,
|
||||
headFormConfigs,
|
||||
allUrls: urls,
|
||||
dialogConfigs,
|
||||
};
|
||||
},
|
||||
created() {},
|
||||
mounted() {},
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
Reference in New Issue
Block a user