Commit e64d1b03 authored by hiyonx's avatar hiyonx

sap特性设置-增加字段

parent 844e01ad
import request from '@/utils/request' import request from '@/utils/request'
// 查询客户列表 // 查询列表
export function listPropertyDict(query) { export function listPropertyDict(query) {
return request({ return request({
url: '/md/propertydict/list', url: '/md/propertydict/list',
...@@ -9,7 +9,7 @@ export function listPropertyDict(query) { ...@@ -9,7 +9,7 @@ export function listPropertyDict(query) {
}) })
} }
// 查询客户详细 // 查询详细
export function getPropertyDict(id) { export function getPropertyDict(id) {
return request({ return request({
url: '/md/propertydict/' + id, url: '/md/propertydict/' + id,
...@@ -17,7 +17,7 @@ export function getPropertyDict(id) { ...@@ -17,7 +17,7 @@ export function getPropertyDict(id) {
}) })
} }
// 新增客户 // 新增
export function addPropertyDict(data) { export function addPropertyDict(data) {
return request({ return request({
url: '/md/propertydict', url: '/md/propertydict',
...@@ -26,7 +26,7 @@ export function addPropertyDict(data) { ...@@ -26,7 +26,7 @@ export function addPropertyDict(data) {
}) })
} }
// 修改客户 // 修改
export function updatePropertyDict(data) { export function updatePropertyDict(data) {
return request({ return request({
url: '/md/propertydict', url: '/md/propertydict',
...@@ -35,7 +35,7 @@ export function updatePropertyDict(data) { ...@@ -35,7 +35,7 @@ export function updatePropertyDict(data) {
}) })
} }
// 删除客户 // 删除
export function delPropertyDict(id) { export function delPropertyDict(id) {
return request({ return request({
url: '/md/propertydict/' + id, url: '/md/propertydict/' + id,
......
import request from '@/utils/request' import request from '@/utils/request'
// 查询客户列表 // 查询列表
export function listPropertytype(query) { export function listPropertytype(query) {
return request({ return request({
url: '/md/propertytype/list', url: '/md/propertytype/list',
...@@ -9,7 +9,7 @@ export function listPropertytype(query) { ...@@ -9,7 +9,7 @@ export function listPropertytype(query) {
}) })
} }
// 查询客户详细 // 查询详细
export function getPropertytype(clientId) { export function getPropertytype(clientId) {
return request({ return request({
url: '/md/propertytype/' + clientId, url: '/md/propertytype/' + clientId,
...@@ -17,7 +17,7 @@ export function getPropertytype(clientId) { ...@@ -17,7 +17,7 @@ export function getPropertytype(clientId) {
}) })
} }
// 新增客户 // 新增
export function addPropertytype(data) { export function addPropertytype(data) {
return request({ return request({
url: '/md/propertytype', url: '/md/propertytype',
...@@ -26,7 +26,7 @@ export function addPropertytype(data) { ...@@ -26,7 +26,7 @@ export function addPropertytype(data) {
}) })
} }
// 修改客户 // 修改
export function updatePropertytype(data) { export function updatePropertytype(data) {
return request({ return request({
url: '/md/propertytype', url: '/md/propertytype',
...@@ -35,7 +35,7 @@ export function updatePropertytype(data) { ...@@ -35,7 +35,7 @@ export function updatePropertytype(data) {
}) })
} }
// 删除客户 // 删除
export function delPropertytype(clientId) { export function delPropertytype(clientId) {
return request({ return request({
url: '/md/propertytype/' + clientId, url: '/md/propertytype/' + clientId,
......
import request from '@/utils/request' import request from '@/utils/request'
// 查询客户列表 // 查询列表
export function listSapproperty(query) { export function listSapproperty(query) {
return request({ return request({
url: '/md/sapproperty/list', url: '/md/sapproperty/list',
...@@ -8,8 +8,16 @@ export function listSapproperty(query) { ...@@ -8,8 +8,16 @@ export function listSapproperty(query) {
params: query params: query
}) })
} }
// 查询列表
export function listByType(query) {
return request({
url: '/md/sapproperty/listByType',
method: 'get',
params: query
})
}
// 查询客户详细 // 查询详细
export function getSapproperty(clientId) { export function getSapproperty(clientId) {
return request({ return request({
url: '/md/sapproperty/' + clientId, url: '/md/sapproperty/' + clientId,
...@@ -17,7 +25,7 @@ export function getSapproperty(clientId) { ...@@ -17,7 +25,7 @@ export function getSapproperty(clientId) {
}) })
} }
// 新增客户 // 新增
export function addSapproperty(data) { export function addSapproperty(data) {
return request({ return request({
url: '/md/sapproperty', url: '/md/sapproperty',
...@@ -26,7 +34,7 @@ export function addSapproperty(data) { ...@@ -26,7 +34,7 @@ export function addSapproperty(data) {
}) })
} }
// 修改客户 // 修改
export function updateSapproperty(data) { export function updateSapproperty(data) {
return request({ return request({
url: '/md/sapproperty', url: '/md/sapproperty',
...@@ -35,7 +43,7 @@ export function updateSapproperty(data) { ...@@ -35,7 +43,7 @@ export function updateSapproperty(data) {
}) })
} }
// 删除客户 // 删除
export function delSapproperty(clientId) { export function delSapproperty(clientId) {
return request({ return request({
url: '/md/sapproperty/' + clientId, url: '/md/sapproperty/' + clientId,
......
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-if="form.type === 1" :span="12"> <el-col v-if="form.type === '1'" :span="12">
<el-form-item label="最大长度" prop="length"> <el-form-item label="最大长度" prop="length">
<el-input v-model.trim.number="form.length" placeholder="请输入最大长度" clearable/> <el-input v-model.trim.number="form.length" placeholder="请输入最大长度" clearable/>
</el-form-item> </el-form-item>
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
<el-input v-model.trim.number="form.regEx" placeholder="请输入正则" clearable/> <el-input v-model.trim.number="form.regEx" placeholder="请输入正则" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<template v-if="[2, 3].includes(form.type)"> <template v-if="['2', '3'].includes(form.type)">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="最小值" prop="min"> <el-form-item label="最小值" prop="min">
<el-input v-model.trim.number="form.min" placeholder="请输入最小值" clearable/> <el-input v-model.trim.number="form.min" placeholder="请输入最小值" clearable/>
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
<el-col v-if="form.type === 7" :span="12"> <el-col v-if="form.type === '7'" :span="12">
<el-form-item label="枚举" prop="dictId"> <el-form-item label="枚举" prop="dictId">
<el-select v-model="form.dictId" placeholder="请选择枚举类型" filterable remote :remote-method="onSearchDict" clearable> <el-select v-model="form.dictId" placeholder="请选择枚举类型" filterable remote :remote-method="onSearchDict" clearable>
<el-option v-for="item in dictList" :key="item.id" :value="item.id" :label="item.name"/> <el-option v-for="item in dictList" :key="item.id" :value="item.id" :label="item.name"/>
......
...@@ -89,8 +89,8 @@ ...@@ -89,8 +89,8 @@
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column label="特性类型" prop="type" :formatter="formatType"/> <el-table-column label="特性类型" prop="type" :formatter="formatType"/>
<el-table-column label="特性名称" width="150px" prop="name"/> <el-table-column label="特性名称" prop="name"/>
<el-table-column label="sap属性" width="150px" prop="sapField"/> <el-table-column label="sap属性" prop="sapField"/>
<el-table-column label="数据类型名" prop="propertyType.name" /> <el-table-column label="数据类型名" prop="propertyType.name" />
<el-table-column label="数据类型" prop="propertyType.type" :formatter="formatDataType"/> <el-table-column label="数据类型" prop="propertyType.type" :formatter="formatDataType"/>
<el-table-column label="是否启用" prop="enableFlag" > <el-table-column label="是否启用" prop="enableFlag" >
...@@ -112,34 +112,59 @@ ...@@ -112,34 +112,59 @@
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="特性类型" prop="type"> <el-form-item label="特性类型" prop="type">
<el-select v-model="form.type" placeholder="请选择特性类型" clearable filterable> <el-select v-model="form.type" placeholder="请选择特性类型" clearable filterable>
<el-option v-for="item in dict.type.sap_property_type" :key="item.value" v-bind="item"/> <el-option v-for="item in dict.type.sap_property_type" :key="item.value" v-bind="item"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="视图类型" prop="viewType">
<el-select v-model="form.viewType" placeholder="请选择视图类型" clearable filterable>
<template v-for="item in viewTypes">
<el-option v-if="!item.types || item.types.includes(form.type)" :key="item.value" v-bind="item"/>
</template>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="特性名称" prop="name"> <el-form-item label="特性名称" prop="name">
<el-input v-model.trim="form.name" placeholder="请输入特性名称" clearable/> <el-input v-model.trim="form.name" placeholder="请输入特性名称" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="数据类型" prop="typeId"> <el-form-item label="数据类型" prop="typeId">
<el-select v-model="form.typeId" placeholder="请选择数据类型" clearable filterable remote :remote-method="onSearchType"> <el-select v-model="form.typeId" placeholder="请选择数据类型" clearable filterable remote :remote-method="onSearchType">
<el-option v-for="item in typeList" :key="item.id" :value="item.id" :label="item.name"/> <el-option class="data-type" v-for="item in typeList" :key="item.id" :value="item.id" :label="item.name">
<div style="float: left;font-size: 14px; line-height: 40px">{{ item.name }}</div>
<div v-if="['4','5','6'].includes(item.type)" style="float: right; color: #8492a6;width: 50%;line-height: 40px">
{{ dict.type.sys_data_type.find(type => type.value === item.type).label }}
</div>
<div v-else style="float: right; color: #8492a6;width: 50%">
<div style="overflow: hidden">{{ dict.type.sys_data_type.find(type => type.value === item.type).label }}</div>
<div style="overflow: hidden">{{ buildDataType(item) }}</div>
</div>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="sap属性" prop="sapField"> <el-form-item label="sap属性" prop="sapField">
<el-input v-model.trim="form.sapField" placeholder="请输入sap属性" clearable/> <el-input v-model.trim="form.sapField" placeholder="请输入sap属性" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="是否启用" prop="enableFlag"> <el-form-item label="关联属性" prop="relationField">
<el-select v-model="form.relationField" placeholder="请选择关联客户属性" clearable filterable>
<el-option v-for="item in relationFields" :key="item.value" v-bind="item"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否启用" prop="enableFlag" required>
<el-radio-group v-model="form.enableFlag"> <el-radio-group v-model="form.enableFlag">
<el-radio v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.value">{{dict.label}}</el-radio> <el-radio v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.value">{{dict.label}}</el-radio>
</el-radio-group> </el-radio-group>
...@@ -205,19 +230,55 @@ export default { ...@@ -205,19 +230,55 @@ export default {
form: { form: {
id: null, id: null,
type: null, type: null,
viewType: '1',
name: null, name: null,
typeId: null, typeId: null,
sapField: null, sapField: null,
relationField: null,
money: 1, money: 1,
enableFlag: 'Y', enableFlag: 'Y',
}, },
viewTypes: [
{label: '基本信息', value: '1', types: ''},
{label: '客户品牌联系人', value: '2', types: ''},
{label: '银行数据', value: '3', types: ''},
{label: '公司代码', value: '4', types: ''},
{label: '销售组织', value: '5', types: ''},
],
relationFields: [
{label: '客户编码', value: 'client_code'},
{label: '客户名称', value: 'client_name'},
{label: '客户简称', value: 'client_nick'},
{label: '客户英文名称', value: 'client_en'},
{label: '客户简介', value: 'client_des'},
{label: '客户LOGO地址', value: 'client_logo'},
{label: '客户类型', value: 'client_type'},
{label: '客户地址', value: 'address'},
{label: '客户官网地址', value: 'website'},
{label: '客户邮箱地址', value: 'email'},
{label: '客户电话', value: 'tel'},
{label: '联系人1', value: 'contact1'},
{label: '联系人1-电话', value: 'contact1_tel'},
{label: '联系人1-邮箱', value: 'contact1_email'},
{label: '联系人2', value: 'contact2'},
{label: '联系人2-电话', value: 'contact2_tel'},
{label: '联系人2-邮箱', value: 'contact2_email'},
{label: '统一社会信用代码', value: 'credit_code'},
{label: '是否启用', value: 'enable_flag'},
{label: '备注', value: 'remark'},
{label: '预留字段1', value: 'attr1'},
{label: '预留字段2', value: 'attr2'},
{label: '预留字段3', value: 'attr3'},
{label: '预留字段4', value: 'attr4'},
],
// 表单校验 // 表单校验
rules: { rules: {
type: [{ required: true, message: '特性类型不能为空', trigger: ['blur', 'change']}], type: [{ required: true, message: '特性类型不能为空', trigger: ['blur', 'change']}],
viewType: [{ required: true, message: '视图类型不能为空', trigger: ['blur', 'change']}],
name: [{ required: true, max: 32, message: '特性名称不能为空,长度在32字符以内', trigger: ['blur', 'change'] }], name: [{ required: true, max: 32, message: '特性名称不能为空,长度在32字符以内', trigger: ['blur', 'change'] }],
typeId: [{ required: true, message: '特性数据类型不能为空', trigger: ['blur', 'change']}], typeId: [{ required: true, message: '数据类型不能为空', trigger: ['blur', 'change']}],
sapField: [ sapField: [
{ required: true, max: 32, message: '特性SAP属性不能为空,长度在32字符以内', trigger: 'blur' }, { required: true, max: 32, message: 'SAP属性不能为空,长度在32字符以内', trigger: 'blur' },
{ pattern: /^[a-zA-Z]\w{1,31}$/, message: '仅支持字母下划线数字,并以字母开头', trigger: ['blur', 'change'] } { pattern: /^[a-zA-Z]\w{1,31}$/, message: '仅支持字母下划线数字,并以字母开头', trigger: ['blur', 'change'] }
], ],
} }
...@@ -278,13 +339,10 @@ export default { ...@@ -278,13 +339,10 @@ export default {
this.open = true; this.open = true;
this.title = "添加特性"; this.title = "添加特性";
this.optType = "add"; this.optType = "add";
listPropertytype({name: '', pageNum: 1, pageSize: 100}).then(response => this.typeList = response.rows)
}, },
onSearchType(key) { onSearchType(key) {
if (key !== '') { listPropertytype({name: key, pageNum: 1, pageSize: 1000}).then(response => this.typeList = response.rows)
listPropertytype({name: key, pageNum: 1, pageSize: 1000}).then(response => this.typeList = response.rows)
} else {
this.typeList = []
}
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
...@@ -294,7 +352,7 @@ export default { ...@@ -294,7 +352,7 @@ export default {
getSapproperty(id).then(response => { getSapproperty(id).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改客户"; this.title = "修改特性";
this.optType = "edit"; this.optType = "edit";
}); });
}, },
...@@ -303,13 +361,13 @@ export default { ...@@ -303,13 +361,13 @@ export default {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateSapproperty(this.form).then(response => { updateSapproperty(this.form).then(() => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addSapproperty(this.form).then(response => { addSapproperty(this.form).then(() => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
...@@ -341,7 +399,25 @@ export default { ...@@ -341,7 +399,25 @@ export default {
formatDataType(row) { formatDataType(row) {
let item = this.dict.type.sys_data_type.find(item => item.value === row.propertyType.type) let item = this.dict.type.sys_data_type.find(item => item.value === row.propertyType.type)
return item ? item.label : '' return item ? item.label : ''
},
buildDataType(item) {
let datatype = ''
if (item.length != null) datatype += `最大长度:${item.length};`
if (item.min != null) datatype += `最小值:${item.min};`
if (item.max != null) datatype += `最大值:${item.max};`
if (item.regEx != null) datatype += `正则:${item.regEx};`
if (item.dictId != null) datatype += `枚举:${item.propertyDict.name};`
return datatype
} }
} }
}; };
</script> </script>
<style>
body .el-select-dropdown__item.data-type {
height: 40px !important;
line-height: 20px !important;
font-size: 12px !important;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment