Commit 92268122 authored by hiyonx's avatar hiyonx

sap特性数据模块

parent 8d06b6be
import request from '@/utils/request'
// 查询客户SAP特性信息列表
export function listData(query) {
return request({
url: '/md/sapPropertyData/list',
method: 'get',
params: query
})
}
// 查询客户SAP特性信息详细
export function getData(id) {
return request({
url: '/md/sapPropertyData/' + id,
method: 'get'
})
}
// 新增客户SAP特性信息
export function addData(data) {
return request({
url: '/md/sapPropertyData',
method: 'post',
data: data
})
}
// 修改客户SAP特性信息
export function updateData(data) {
return request({
url: '/md/sapPropertyData',
method: 'put',
data: data
})
}
// 删除客户SAP特性信息
export function delData(id) {
return request({
url: '/md/sapPropertyData/' + id,
method: 'delete'
})
}
<template> <template>
<div class="base-info"> <div class="base-info">
<el-form :model="form" ref="form" label-width="120px" size="mini"> <el-form :model="sapData" ref="form" label-width="120px" size="mini">
<el-row class="form-wrap" :gutter="10"> <el-row class="form-wrap" :gutter="gutter">
<template v-for="item in sapProperties"> <template v-for="item in sapProperties">
<el-col :span="8" :key="item.id"> <el-col :span="span" :key="item.id">
<el-form-item :label="item.name" :prop="item.sapField" <el-form-item :label="item.name" :prop="item.sapField"
:rules="{required: true, validator: (rule, value, callback) => onValidate(rule, value, callback, item), trigger: ['blur', 'change']}"> :rules="{required: true, validator: (rule, value, callback) => onValidate(rule, value, callback, item), trigger: ['blur', 'change']}">
<el-input-all v-model="form[item.sapField]" :item="item"/> <el-input-all v-model="sapData[item.sapField]" :item="item"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
</el-row> </el-row>
</el-form>
<div> <div class="footer">
<el-button @click="onConfirm">确认</el-button> <el-button type="primary" @click="onConfirm" :loading="loading" size="mini">确认</el-button>
</div> </div>
</el-form>
</div> </div>
</template> </template>
<script> <script>
import {listByType} from '@/api/mes/md/sapproperty' import {listByType} from '@/api/mes/md/sapproperty'
import { addData, updateData, listData } from '@/api/mes/md/sapPropertyData'
export default { export default {
props: { props: {
gutter: {type: Number, default: 10},
span: {type: Number, default: 8},
}, },
data() { data() {
return { return {
loading: false,
sapProperties: [], sapProperties: [],
customer: {}, customer: {},
form: {}, form: {
type: null,
relationId: null,
},
sapData: {
},
sapProperty: { sapProperty: {
id: '', id: '',
type: '', type: '',
...@@ -54,7 +62,19 @@ export default { ...@@ -54,7 +62,19 @@ export default {
}, },
methods: { methods: {
onConfirm() { onConfirm() {
console.log(this.form) if (!Object.keys(this.sapData).length) return
console.log(this.sapData)
if (this.loading) return
this.$refs.form.validate(valid => {
if (valid) {
this.loading = true
this.form.sapData = JSON.stringify(this.sapData)
let handleEdit = this.form.id ? updateData : addData
handleEdit(this.form).then(() => this.$message.success('操作成功')).finally(() => this.loading = false)
} else {
this.$message.error("请检查表单")
}
})
}, },
onValidate(rule, value, callback, item) { onValidate(rule, value, callback, item) {
if (value === '' || value == null) { if (value === '' || value == null) {
...@@ -68,11 +88,38 @@ export default { ...@@ -68,11 +88,38 @@ export default {
callback() callback()
} }
}, },
init() {
setData(data, sapData, sapProperties) {
for (let property of sapProperties) {
let propertyData = data[property.relationField]
sapData[property.sapField] = propertyData || sapData[property.sapField]
}
console.log(sapData)
this.sapData = sapData
},
init(type, relationId, data = {}) {
console.log(relationId)
this.$refs.form && this.$refs.form.resetFields() this.$refs.form && this.$refs.form.resetFields()
this.form = {} this.form.type = type
listByType({type: 1}).then(res => { this.form.relationId = relationId
this.sapProperties = res.data let sapData = {}
// 获取sap特性列表
listByType({type}).then(res => {
let sapProperties = res.data || []
this.sapProperties = sapProperties
if (relationId) {
// 获取sap特性值
listData({type, relationId}).then(resp => {
let row = resp.rows[0] || {sapData: '{}'}
this.form.id = row.id
sapData = JSON.parse(row.sapData)
// 再次赋值
this.setData(data, sapData, sapProperties)
})
} else {
this.setData(data, sapData, sapProperties)
}
}) })
} }
}, },
...@@ -83,8 +130,12 @@ export default { ...@@ -83,8 +130,12 @@ export default {
</script> </script>
<style scoped> <style scoped>
.form-wrap { .form-wrap {
max-height: 400px; max-height: 400px;
overflow-y: auto; overflow-y: auto;
} }
.footer {
text-align: right;
}
</style> </style>
...@@ -33,6 +33,8 @@ import Editor from "@/components/Editor" ...@@ -33,6 +33,8 @@ import Editor from "@/components/Editor"
import ElInputMoney from "@/components/ElInputMoney" import ElInputMoney from "@/components/ElInputMoney"
// sap输入框 // sap输入框
import ElInputAll from "@/components/ElInputAll" import ElInputAll from "@/components/ElInputAll"
// sap特性数据表单
import SapPropertyData from "@/components/SapPropertyData"
// 文件上传组件 // 文件上传组件
import FileUpload from "@/components/FileUpload" import FileUpload from "@/components/FileUpload"
// 图片上传组件 // 图片上传组件
...@@ -69,6 +71,7 @@ Vue.component('RightToolbar', RightToolbar) ...@@ -69,6 +71,7 @@ Vue.component('RightToolbar', RightToolbar)
Vue.component('Editor', Editor) Vue.component('Editor', Editor)
Vue.component('ElInputMoney', ElInputMoney) Vue.component('ElInputMoney', ElInputMoney)
Vue.component('ElInputAll', ElInputAll) Vue.component('ElInputAll', ElInputAll)
Vue.component('SapPropertyData', SapPropertyData)
Vue.component('FileUpload', FileUpload) Vue.component('FileUpload', FileUpload)
Vue.component('ImageUpload', ImageUpload) Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview) Vue.component('ImagePreview', ImagePreview)
......
...@@ -233,9 +233,9 @@ export default { ...@@ -233,9 +233,9 @@ export default {
...this.queryParams ...this.queryParams
}, `contact_${new Date().getTime()}.xlsx`) }, `contact_${new Date().getTime()}.xlsx`)
}, },
init(clientId) { init(form) {
if (!clientId) return if (!form.clientId) return
this.queryParams.clientId = clientId this.queryParams.clientId = form.clientId
this.getList() this.getList()
}, },
} }
......
...@@ -126,7 +126,9 @@ export default { ...@@ -126,7 +126,9 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
clientId: null, relatedClientId: null, }, clientId: null,
relatedClientId: null,
},
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
...@@ -226,9 +228,9 @@ export default { ...@@ -226,9 +228,9 @@ export default {
...this.queryParams ...this.queryParams
}, `relation_${new Date().getTime()}.xlsx`) }, `relation_${new Date().getTime()}.xlsx`)
}, },
init(clientId) { init(form) {
if (!clientId) return if (!form.clientId) return
this.queryParams.clientId = clientId this.queryParams.clientId = form.clientId
this.getList() this.getList()
} }
} }
......
...@@ -247,9 +247,9 @@ export default { ...@@ -247,9 +247,9 @@ export default {
...this.queryParams ...this.queryParams
}, `email_${new Date().getTime()}.xlsx`) }, `email_${new Date().getTime()}.xlsx`)
}, },
init(clientId) { init(form) {
if (!clientId) return if (!form.clientId) return
this.queryParams.clientId = clientId this.queryParams.clientId = form.clientId
this.getList() this.getList()
} }
} }
......
...@@ -171,7 +171,7 @@ ...@@ -171,7 +171,7 @@
/> />
<!-- 添加或修改客户对话框 --> <!-- 添加或修改客户对话框 -->
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="960px">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="8"> <el-col :span="8">
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
<PaymentRelation ref="PaymentRelation"/> <PaymentRelation ref="PaymentRelation"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="SAP特性" name="SapProperty"> <el-tab-pane label="SAP特性" name="SapProperty">
<SapProperty ref="SapProperty"/> <SapPropertyData ref="SapProperty"/>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
...@@ -275,14 +275,13 @@ import ClientContact from '@/views/mes/md/client/components/ClientContact' ...@@ -275,14 +275,13 @@ import ClientContact from '@/views/mes/md/client/components/ClientContact'
import DeliveryInfo from '@/views/mes/md/client/components/DeliveryInfo' import DeliveryInfo from '@/views/mes/md/client/components/DeliveryInfo'
import FinanceInfo from '@/views/mes/md/client/components/FinanceInfo' import FinanceInfo from '@/views/mes/md/client/components/FinanceInfo'
import PaymentRelation from '@/views/mes/md/client/components/PaymentRelation' import PaymentRelation from '@/views/mes/md/client/components/PaymentRelation'
import SapProperty from '@/views/mes/md/client/components/SapProperty'
import {genCode} from "@/api/system/autocode/rule" import {genCode} from "@/api/system/autocode/rule"
export default { export default {
name: "Client", name: "Client",
dicts: ['mes_client_type','sys_yes_no'], dicts: ['mes_client_type','sys_yes_no'],
components: { components: {
AddrInfo, BaseInfo, DeliveryInfo, FinanceInfo, UrgeEmail, PaymentRelation, ClientContact, SapProperty AddrInfo, BaseInfo, DeliveryInfo, FinanceInfo, UrgeEmail, PaymentRelation, ClientContact
}, },
data() { data() {
return { return {
...@@ -540,7 +539,8 @@ export default { ...@@ -540,7 +539,8 @@ export default {
} }
}, },
onTabClick() { onTabClick() {
this.$refs[this.activeName].init && this.$refs[this.activeName].init(this.form.clientId) if (this.activeName === 'SapProperty') this.$refs.SapProperty.init(1, this.form.clientId, this.form)
else this.$refs[this.activeName].init && this.$refs[this.activeName].init(this.form)
} }
} }
}; };
......
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