Commit e64d1b03 authored by hiyonx's avatar hiyonx

sap特性设置-增加字段

parent 844e01ad
import request from '@/utils/request'
// 查询客户列表
// 查询列表
export function listPropertyDict(query) {
return request({
url: '/md/propertydict/list',
......@@ -9,7 +9,7 @@ export function listPropertyDict(query) {
})
}
// 查询客户详细
// 查询详细
export function getPropertyDict(id) {
return request({
url: '/md/propertydict/' + id,
......@@ -17,7 +17,7 @@ export function getPropertyDict(id) {
})
}
// 新增客户
// 新增
export function addPropertyDict(data) {
return request({
url: '/md/propertydict',
......@@ -26,7 +26,7 @@ export function addPropertyDict(data) {
})
}
// 修改客户
// 修改
export function updatePropertyDict(data) {
return request({
url: '/md/propertydict',
......@@ -35,7 +35,7 @@ export function updatePropertyDict(data) {
})
}
// 删除客户
// 删除
export function delPropertyDict(id) {
return request({
url: '/md/propertydict/' + id,
......
import request from '@/utils/request'
// 查询客户列表
// 查询列表
export function listPropertytype(query) {
return request({
url: '/md/propertytype/list',
......@@ -9,7 +9,7 @@ export function listPropertytype(query) {
})
}
// 查询客户详细
// 查询详细
export function getPropertytype(clientId) {
return request({
url: '/md/propertytype/' + clientId,
......@@ -17,7 +17,7 @@ export function getPropertytype(clientId) {
})
}
// 新增客户
// 新增
export function addPropertytype(data) {
return request({
url: '/md/propertytype',
......@@ -26,7 +26,7 @@ export function addPropertytype(data) {
})
}
// 修改客户
// 修改
export function updatePropertytype(data) {
return request({
url: '/md/propertytype',
......@@ -35,7 +35,7 @@ export function updatePropertytype(data) {
})
}
// 删除客户
// 删除
export function delPropertytype(clientId) {
return request({
url: '/md/propertytype/' + clientId,
......
import request from '@/utils/request'
// 查询客户列表
// 查询列表
export function listSapproperty(query) {
return request({
url: '/md/sapproperty/list',
......@@ -8,8 +8,16 @@ export function listSapproperty(query) {
params: query
})
}
// 查询列表
export function listByType(query) {
return request({
url: '/md/sapproperty/listByType',
method: 'get',
params: query
})
}
// 查询客户详细
// 查询详细
export function getSapproperty(clientId) {
return request({
url: '/md/sapproperty/' + clientId,
......@@ -17,7 +25,7 @@ export function getSapproperty(clientId) {
})
}
// 新增客户
// 新增
export function addSapproperty(data) {
return request({
url: '/md/sapproperty',
......@@ -26,7 +34,7 @@ export function addSapproperty(data) {
})
}
// 修改客户
// 修改
export function updateSapproperty(data) {
return request({
url: '/md/sapproperty',
......@@ -35,7 +43,7 @@ export function updateSapproperty(data) {
})
}
// 删除客户
// 删除
export function delSapproperty(clientId) {
return request({
url: '/md/sapproperty/' + clientId,
......
......@@ -134,7 +134,7 @@
</el-select>
</el-form-item>
</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-input v-model.trim.number="form.length" placeholder="请输入最大长度" clearable/>
</el-form-item>
......@@ -142,7 +142,7 @@
<el-input v-model.trim.number="form.regEx" placeholder="请输入正则" clearable/>
</el-form-item>
</el-col>
<template v-if="[2, 3].includes(form.type)">
<template v-if="['2', '3'].includes(form.type)">
<el-col :span="12">
<el-form-item label="最小值" prop="min">
<el-input v-model.trim.number="form.min" placeholder="请输入最小值" clearable/>
......@@ -154,7 +154,7 @@
</el-form-item>
</el-col>
</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-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"/>
......
......@@ -89,8 +89,8 @@
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="特性类型" prop="type" :formatter="formatType"/>
<el-table-column label="特性名称" width="150px" prop="name"/>
<el-table-column label="sap属性" width="150px" prop="sapField"/>
<el-table-column label="特性名称" prop="name"/>
<el-table-column label="sap属性" prop="sapField"/>
<el-table-column label="数据类型名" prop="propertyType.name" />
<el-table-column label="数据类型" prop="propertyType.type" :formatter="formatDataType"/>
<el-table-column label="是否启用" prop="enableFlag" >
......@@ -112,34 +112,59 @@
<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-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="特性类型" prop="type">
<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-select>
</el-form-item>
</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-input v-model.trim="form.name" placeholder="请输入特性名称" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="数据类型" prop="typeId">
<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-form-item>
</el-col>
<el-col :span="12">
<el-col :span="8">
<el-form-item label="sap属性" prop="sapField">
<el-input v-model.trim="form.sapField" placeholder="请输入sap属性" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否启用" prop="enableFlag">
<el-col :span="8">
<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 v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.value">{{dict.label}}</el-radio>
</el-radio-group>
......@@ -205,19 +230,55 @@ export default {
form: {
id: null,
type: null,
viewType: '1',
name: null,
typeId: null,
sapField: null,
relationField: null,
money: 1,
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: {
type: [{ required: true, message: '特性类型不能为空', trigger: ['blur', 'change']}],
viewType: [{ required: true, message: '视图类型不能为空', 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: [
{ 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'] }
],
}
......@@ -278,13 +339,10 @@ export default {
this.open = true;
this.title = "添加特性";
this.optType = "add";
listPropertytype({name: '', pageNum: 1, pageSize: 100}).then(response => this.typeList = response.rows)
},
onSearchType(key) {
if (key !== '') {
listPropertytype({name: key, pageNum: 1, pageSize: 1000}).then(response => this.typeList = response.rows)
} else {
this.typeList = []
}
listPropertytype({name: key, pageNum: 1, pageSize: 1000}).then(response => this.typeList = response.rows)
},
/** 修改按钮操作 */
handleUpdate(row) {
......@@ -294,7 +352,7 @@ export default {
getSapproperty(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改客户";
this.title = "修改特性";
this.optType = "edit";
});
},
......@@ -303,13 +361,13 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateSapproperty(this.form).then(response => {
updateSapproperty(this.form).then(() => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSapproperty(this.form).then(response => {
addSapproperty(this.form).then(() => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -341,7 +399,25 @@ export default {
formatDataType(row) {
let item = this.dict.type.sys_data_type.find(item => item.value === row.propertyType.type)
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>
<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