Commit a571c1d6 authored by Mac's avatar Mac

修改客户字段列表

parent db8216a3
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
"vue-i18n": "^8.0.0", "vue-i18n": "^8.0.0",
"vue-inline-svg": "^2.0.0", "vue-inline-svg": "^2.0.0",
"vue-waterfall-easy": "^2.4.4", "vue-waterfall-easy": "^2.4.4",
"vuedraggable": "^2.24.3",
"weixin-js-sdk": "^1.6.0", "weixin-js-sdk": "^1.6.0",
"xlsx": "^0.16.8", "xlsx": "^0.16.8",
"xlsx-style": "^0.8.13" "xlsx-style": "^0.8.13"
......
...@@ -410,6 +410,65 @@ export function SetSynvEduEmployee(data) { ...@@ -410,6 +410,65 @@ export function SetSynvEduEmployee(data) {
}) })
} }
/**
* 获取客户字段列表
*
*/
export function getCustomerFiledList(data) {
return request({
url: '/QYCustomer/GetCustomerFiledList',
method: 'post',
data
})
}
/**
* 设置字段状态
*
*/
export function setCustomerFiledState(data) {
return request({
url: '/QYCustomer/SetCustomerFiledState',
method: 'post',
data
})
}
/**
* 获取客户子段输入类型枚举
*
*/
export function getCustomerFieldInputTypeEnumList(data) {
return request({
url: '/QYCustomer/GetCustomerFieldInputTypeEnumList',
method: 'post',
data
})
}
/**
* 获取客户子段类型枚举
*
*/
export function getCustomerFieldTypeEnumList(data) {
return request({
url: '/QYCustomer/GetCustomerFieldTypeEnumList',
method: 'post',
data
})
}
/**
* 新增修改客户字段
*
*/
export function setCustomerFiledInfo(data) {
return request({
url: '/QYCustomer/SetCustomerFiledInfo',
method: 'post',
data
})
}
......
...@@ -12,26 +12,24 @@ ...@@ -12,26 +12,24 @@
<template v-slot:before> <template v-slot:before>
<q-tabs v-model="tab" vertical @input="getdefault"> <q-tabs v-model="tab" vertical @input="getdefault">
<q-tab v-for="(x,y) in tabsList" :key='y' :name="x.name" :label="x.label" <q-tab v-for="(x,y) in tabsList" :key='y' :name="x.Id" :label="x.Name"
:disable="x.disable" /> :disable="x.disable" />
</q-tabs> </q-tabs>
</template> </template>
<template v-slot:after> <template v-slot:after>
<q-tab-panels v-model="tab" animated swipeable vertical transition-prev="jump-up" <div style="height: 100%; width: 100%;padding: 16px">
transition-next="jump-up">
<q-tab-panel name="1">
<el-form label-width="120px"> <el-form label-width="120px">
<el-form-item label="字段名称:"> <el-form-item label="字段名称:">
<q-input clearable filled maxlength="8" counter v-model="addMsg.fieldName" <q-input clearable filled maxlength="8" counter v-model="addMsg.Name"
@input="$forceUpdate()" label="字段名称" /> @input="$forceUpdate()" label="字段名称" :rules="[val => !!val || '请输入字段名称']" />
</el-form-item> </el-form-item>
<el-form-item label="部门选择:"> <el-form-item label="部门选择:">
<q-radio v-model="addMsg.departmentType" val="1" label="公司字段" <q-radio v-model="departmentType" val="1" label="公司字段"
@input='addMsg.departmentId=0' /> @input='addMsg.DeptId=0' />
<q-radio v-model="addMsg.departmentType" val="2" label="部门字段" <q-radio v-model="departmentType" val="2" label="部门字段"
@input='addMsg.departmentId=0' /> @input='addMsg.DeptId=0' />
<div v-if="addMsg.departmentType==2"> <div v-if="departmentType==2">
<selectTree :treeData='deptl' :defaultArray="returnString" <selectTree :treeData='deptl' :defaultArray="returnString"
nodeKey="DeptId" :multiple="false" labelKey="DeptName" nodeKey="DeptId" :multiple="false" labelKey="DeptName"
...@@ -40,193 +38,57 @@ ...@@ -40,193 +38,57 @@
</selectTree> </selectTree>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="字数限制:"> <el-form-item label="字数限制:" v-if='tab==1'>
<q-input v-model.number="addMsg.singleLineLimit.characterLimit" <q-input v-model.number="addMsg.WordNum" :rules="[val => !!val || '不能为空']"
type="number" filled :max='50' :min='0' style="max-width: 200px" /> type="number" filled :max='50' :min='0' style="max-width: 200px" />
</el-form-item> </el-form-item>
<el-form-item label="输入类型:"> <el-form-item label="输入类型:" v-if='tab==1'>
<div class="q-gutter-sm"> <div class="q-gutter-sm">
<q-checkbox v-model="addMsg.singleLineLimit.characterType" <q-checkbox v-model="addMsg.InputType"
v-for="(x,y) in checkboxList" :key='y' :val="x.Id" v-for="(x,y) in checkboxList" :key='y' :val="x.Id"
:label="x.Name" /> :label="x.Name" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="属性设置:"> <el-form-item label="文字字数:" v-if='tab==2'>
<div class="q-gutter-sm"> <el-input-number v-model="addMsg.WordNum" @change="handleChange" :min="1"
<q-toggle v-model="addMsg.mustFill" label="必填项" />
<q-toggle v-model="addMsg.enable" label="启用" />
</div>
</el-form-item>
</el-form>
</q-tab-panel>
<q-tab-panel name="2">
<el-form label-width="120px">
<el-form-item label="字段名称:">
<q-input clearable filled maxlength="8" counter v-model="addMsg.fieldName"
@input="$forceUpdate()" label="字段名称" />
</el-form-item>
<el-form-item label="部门选择:">
<q-radio v-model="addMsg.departmentType" val="1" label="公司字段"
@input='addMsg.departmentId=0' />
<q-radio v-model="addMsg.departmentType" val="2" label="部门字段"
@input='addMsg.departmentId=0' />
<div v-if="addMsg.departmentType==2">
<selectTree :treeData='deptl' :defaultArray="returnString"
nodeKey="DeptId" :multiple="false" labelKey="DeptName"
childrenKey="ChildList" tipText="选择部门" @getChild="getChild"
classStr="col-6 q-pb-lg">
</selectTree>
</div>
</el-form-item>
<el-form-item label="文字字数:">
<el-input-number v-model="addMsg.num" @change="handleChange" :min="1"
:max="2000"></el-input-number> :max="2000"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="属性设置:"> <el-form-item label="列表选项:" v-if='tab==3|| tab==4'>
<div class="q-gutter-sm"> <draggable v-model="addMsg.OptionsList">
<q-toggle v-model="addMsg.mustFill" label="必填项" /> <div v-for="(x,y) in addMsg.OptionsList" :key='y' style="display: flex;align-items: center;margin-bottom: 10px;">
<q-toggle v-model="addMsg.enable" label="启用" /> <q-input clearable filled maxlength="16" v-model="x.Name" style="width: 280px;" @input="$forceUpdate()" label="列表项值" />
<q-btn round size="xs" color="deep-orange" icon="delete" v-if="addMsg.OptionsList.length>1" @click="addMsg.OptionsList.splice(y,1)" style='margin-left: 10px;'/>
<q-btn round size="xs" color="primary" icon="add" v-if="addMsg.OptionsList.length==y+1" @click="addMsg.OptionsList.push({Id:0,Name:''})" style='margin-left: 10px;'/>
</div> </div>
</el-form-item> </draggable>
</el-form>
</q-tab-panel>
<q-tab-panel name="3">
<el-form label-width="120px">
<el-form-item label="字段名称:">
<q-input clearable filled maxlength="8" counter v-model="addMsg.fieldName"
@input="$forceUpdate()" label="字段名称" />
</el-form-item>
<el-form-item label="部门选择:">
<q-radio v-model="addMsg.departmentType" val="1" label="公司字段"
@input='addMsg.departmentId=0' />
<q-radio v-model="addMsg.departmentType" val="2" label="部门字段"
@input='addMsg.departmentId=0' />
<div v-if="addMsg.departmentType==2">
<selectTree :treeData='deptl' :defaultArray="returnString"
nodeKey="DeptId" :multiple="false" labelKey="DeptName"
childrenKey="ChildList" tipText="选择部门" @getChild="getChild"
classStr="col-6 q-pb-lg">
</selectTree>
</div>
</el-form-item>
<el-form-item label="列表选项:">
</el-form-item> </el-form-item>
<el-form-item label="属性设置:"> <el-form-item label="小数位数:" v-if='tab==7'>
<div class="q-gutter-sm"> <q-select filled stack-label option-value="Id" option-label="Id"
<q-toggle v-model="addMsg.mustFill" label="必填项" /> v-model="addMsg.Digits" ref="Id" :options="decimalslist" label="小数位数"
<q-toggle v-model="addMsg.enable" label="启用" /> :dense="false" emit-value map-options />
</div>
</el-form-item>
</el-form>
</q-tab-panel>
<q-tab-panel name="4">
多选
</q-tab-panel>
<q-tab-panel name="5">
<el-form label-width="120px">
<el-form-item label="字段名称:">
<q-input clearable filled maxlength="8" counter v-model="addMsg.fieldName"
@input="$forceUpdate()" label="字段名称" />
</el-form-item> </el-form-item>
<el-form-item label="部门选择:">
<q-radio v-model="addMsg.departmentType" val="1" label="公司字段"
@input='addMsg.departmentId=0' />
<q-radio v-model="addMsg.departmentType" val="2" label="部门字段"
@input='addMsg.departmentId=0' />
<div v-if="addMsg.departmentType==2">
<selectTree :treeData='deptl' :defaultArray="returnString"
nodeKey="DeptId" :multiple="false" labelKey="DeptName"
childrenKey="ChildList" tipText="选择部门" @getChild="getChild"
classStr="col-6 q-pb-lg">
</selectTree>
</div>
</el-form-item>
<el-form-item label="属性设置:">
<div class="q-gutter-sm">
<q-toggle v-model="addMsg.mustFill" label="必填项" />
<q-toggle v-model="addMsg.enable" label="启用" />
</div>
</el-form-item>
</el-form>
</q-tab-panel>
<q-tab-panel name="6">
<el-form label-width="120px">
<el-form-item label="字段名称:">
<q-input clearable filled maxlength="8" counter v-model="addMsg.fieldName"
@input="$forceUpdate()" label="字段名称" />
</el-form-item>
<el-form-item label="部门选择:">
<q-radio v-model="addMsg.departmentType" val="1" label="公司字段"
@input='addMsg.departmentId=0' />
<q-radio v-model="addMsg.departmentType" val="2" label="部门字段"
@input='addMsg.departmentId=0' />
<div v-if="addMsg.departmentType==2">
<selectTree :treeData='deptl' :defaultArray="returnString"
nodeKey="DeptId" :multiple="false" labelKey="DeptName"
childrenKey="ChildList" tipText="选择部门" @getChild="getChild"
classStr="col-6 q-pb-lg">
</selectTree>
</div>
</el-form-item>
<el-form-item label="属性设置:">
<div class="q-gutter-sm">
<q-toggle v-model="addMsg.mustFill" label="必填项" />
<q-toggle v-model="addMsg.enable" label="启用" />
</div>
</el-form-item>
</el-form>
</q-tab-panel>
<q-tab-panel name="7">
<el-form label-width="120px">
<el-form-item label="字段名称:">
<q-input clearable filled maxlength="8" counter v-model="addMsg.fieldName"
@input="$forceUpdate()" label="字段名称" />
</el-form-item>
<el-form-item label="部门选择:">
<q-radio v-model="addMsg.departmentType" val="1" label="公司字段"
@input='addMsg.departmentId=0' />
<q-radio v-model="addMsg.departmentType" val="2" label="部门字段"
@input='addMsg.departmentId=0' />
<div v-if="addMsg.departmentType==2">
<selectTree :treeData='deptl' :defaultArray="returnString"
nodeKey="DeptId" :multiple="false" labelKey="DeptName"
childrenKey="ChildList" tipText="选择部门" @getChild="getChild"
classStr="col-6 q-pb-lg">
</selectTree>
</div>
</el-form-item>
<el-form-item label="小数位数:">
<q-select filled stack-label option-value="Id" option-label="Id"
v-model="addMsg.decimals" ref="Id" :options="decimalslist" label="小数位数"
:dense="false" emit-value map-options />
</el-form-item>
<el-form-item label="属性设置:"> <el-form-item label="属性设置:">
<div class="q-gutter-sm"> <div class="q-gutter-sm">
<q-toggle v-model="addMsg.mustFill" label="必填项" /> <q-toggle v-model="addMsg.Required" label="必填项" :true-value="1" :false-value="2" />
<q-toggle v-model="addMsg.enable" label="启用" /> <q-toggle v-model="addMsg.Enable" label="启用" :true-value="1" :false-value="2" />
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</q-tab-panel> </div>
</q-tab-panels>
</template> </template>
</q-splitter> </q-splitter>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-actions align="right" class="bg-white"> <q-card-actions align="right" class="bg-white">
<q-btn class="q-mr-md" label="取消" @click="getcancel()" /> <q-btn class="q-mr-md" label="取消" @click="getcancel()" />
<q-btn color="accent" class="q-mr-md" label="确定" @click="savewb()" /> <q-btn color="accent" class="q-mr-md" label="确定" @click="savewb()" :loading="loading"/>
</q-card-actions> </q-card-actions>
</q-card> </q-card>
</q-dialog> </q-dialog>
...@@ -237,32 +99,30 @@ ...@@ -237,32 +99,30 @@
</template> </template>
<script> <script>
import draggable from "vuedraggable"
import selectTree from '../../../../../components/common/select-tree' import selectTree from '../../../../../components/common/select-tree'
//部门
import { import {
getDeptTree setCustomerFiledInfo
} from '../../../../../api/system/dept' } from '../../../../../api/system/wechat'
const defaultObj = { const defaultObj = {
departmentId: 0,//部门id 为0时 是公司名字 Id:0,
departmentType: '1',//部门选择 Type:1,
enable: true,//启用 Name:'',
fieldId: 0, Required:2,
decimals: 0,//小数 DeptId:0,
num: 0,//文字字数 WordNum:1,
fieldName: "",//字段名称 InputType:[],
fieldOpts:[{itemId:0,name:'',seq:0,}],//多选和单选的值 OptionsList:[{Id:1,Name:''}],
fieldType: 1,//类型 Digits:0,
mustFill: false,//必填 Enable:1,
singleLineLimit: {
characterLimit: 50,//字数限制
characterType: [1, 2, 3, 4]//输入类型
},
} }
export default { export default {
name: "addfield", name: "addfield",
components: { components: {
draggable,
selectTree, selectTree,
}, },
props: { props: {
...@@ -270,84 +130,170 @@ ...@@ -270,84 +130,170 @@
type: Object, type: Object,
default: {}, default: {},
}, },
deptl:{
type: Array,
default: [],
},
tabsList:{
type: Array,
default: [],
},
checkboxList:{
type: Array,
default: [],
},
}, },
data() { data() {
return { return {
loading:false,
Isadd: true, Isadd: true,
splitterModel: 13, splitterModel: 13,
tab: '1', tab: 1,
tabsList: [ departmentType:'1',
{ name: '1', label: '单行文本', disable: false },
{ name: '2', label: '多行文本', disable: false },
{ name: "3", label: '单选', disable: false },
{ name: "4", label: '多选', disable: false },
{ name: "5", label: '日期', disable: false },
{ name: "6", label: '日期时间', disable: false },
{ name: '7', label: '数值', disable: false },
],
checkboxList: [{ Name: '汉字', Id: 1 }, { Name: '数字', Id: 2 }, { Name: '字母', Id: 3 }, { Name: '符号', Id: 4 }],
decimalslist: [{ Id: 0 }, { Id: 1 }, { Id: 2 }, { Id: 3 }, { Id: 4 }, { Id: 5 }, { Id: 6 }, { Id: 7 }, { Id: 8 }, { Id: 9 }, { Id: 10 }, { Id: 11 },], decimalslist: [{ Id: 0 }, { Id: 1 }, { Id: 2 }, { Id: 3 }, { Id: 4 }, { Id: 5 }, { Id: 6 }, { Id: 7 }, { Id: 8 }, { Id: 9 }, { Id: 10 }, { Id: 11 },],
addMsg: Object.assign({},defaultObj), addMsg: Object.assign({},defaultObj),
returnString: [], //默认岗位 returnString: [], //默认岗位
deptl: [],//部门下拉
} }
}, },
created() { created() {
this.Isadd = true this.Isadd = true
if (this.obj != null) { if (this.obj != null) {//编辑的时候数据处理
this.addMsg = this.obj let data={ Id:this.obj.Id,
Type:this.obj.Type,
Name:this.obj.Name,
Required:this.obj.Required,
DeptId:this.obj.DeptId,
WordNum:this.obj.WordNum,
InputType:this.obj.InputType.split(',').map(Number),
OptionsList:this.obj.OptionsList,
Digits:this.obj.Digits,
Enable:this.obj.Enable,
} }
this.getDepartList() this.tab = this.obj.Type
if(this.obj.DeptId>0){
this.departmentType= '2'
this.returnString= []
setTimeout(()=>{
this.returnString.push(this.obj.DeptId)
this.$forceUpdate();
},500)
}
this.addMsg = data
this.tabsList.forEach(x=>{
if(x.Id !=data.Type){
x.disable =true
}
})
}else{
this.addMsg.InputType=[]
this.checkboxList.forEach(x=>{
this.addMsg.InputType.push(x.Id)
})
}
}, },
// watch: { // 监听参数变化
// addMsg: {
// handler: function (val, oldVal) {
// console.log(val,oldVal)
// },
// deep: true
// },
// },
methods: { methods: {
savewb() { savewb() {
let addMsg = JSON.parse(JSON.stringify(this.addMsg))
addMsg.Type = this.tab//先类型赋值
if(addMsg.Name==''){
this.$q.notify({
type: 'negative',
message: `请填写字段名称`,
position: 'top'
})
return
}
if((addMsg.Type==1|| addMsg.Type==2) && addMsg.WordNum==''){
this.$q.notify({
type: 'negative',
message: `字数不能为空`,
position: 'top'
})
return
}
if(this.departmentType==2 && (addMsg.DeptId==0|| addMsg.DeptId=='')){
this.$q.notify({
type: 'negative',
message: `请选择部门`,
position: 'top'
})
return
}
if(addMsg.Type==3|| addMsg.Type ==4){
for(let i = 0 ;i< addMsg.OptionsList.length;i++){
let x = addMsg.OptionsList[i]
if(x.Name==''){
this.$q.notify({
type: 'negative',
message: `请填写列表选项值`,
position: 'top'
})
break
}
addMsg.OptionsList[i].Id = i+1
}
}
if(addMsg.Type==1 ){
if(addMsg.InputType.length==0){
this.$q.notify({
type: 'negative',
message: `至少选择一种输入类型`,
position: 'top'
})
return
}else{
addMsg.InputType= addMsg.InputType.join(',')
}
}else{
addMsg.InputType='1'
}
console.log(addMsg)
this.loading = true
setCustomerFiledInfo(addMsg).then(res => {
this.loading = false
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: res.Message,
position: 'top'
})
this.$emit('getcancel',2)
}).catch((e) => {
this.loading = false
})
}, },
getcancel() { getcancel() {
this.$emit('getcancel') this.$emit('getcancel',1)
}, },
//获取部门下拉数据
getDepartList(id) {
let msg = {
School_Id: 0
}
getDeptTree(msg).then(res => {
if (res.Code == 1) {
this.deptl = res.Data;
}
})
},
getChild(deptArray) { getChild(deptArray) {
var tempStr = ""; var tempStr = "";
if (deptArray && deptArray != '') { if (deptArray && deptArray != '') {
tempStr = deptArray; tempStr = deptArray;
} }
this.addMsg.departmentId = tempStr this.addMsg.DeptId = tempStr
},
a() {
console.log(this.addMsg)
}, },
handleChange(value) { handleChange(value) {
}, },
getdefault(){//新增的时候初始默认值 getdefault(){//新增的时候初始默认值
console.log('进去')
this.addMsg = Object.assign({},defaultObj) this.addMsg = Object.assign({},defaultObj)
this.addMsg.OptionsList=[{Id:0,Name:'',}]//多选和单选的值
} }
} }
} }
......
<template> <template>
<div class="materialManage page-body"> <div class="customerSetup page-body">
<div style="text-align: right;">
<div class="page-content"> <q-btn color="accent" style="float:right;margin-bottom: 10px;" size="sm" class="q-mr-md" icon="add"
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" title="" :data="data" :columns="columns" row-key="name">
<template v-slot:top="props">
<div class="col-2 q-table__title"></div>
<q-space />
<q-btn color="accent" style="float:right;margin-right:0;" size="sm" class="q-mr-md" icon="add"
label="新增字段" @click="goaddfield()"></q-btn> label="新增字段" @click="goaddfield()"></q-btn>
</template> </div>
<template v-slot:body-cell-Type="props"> <div class="page-content">
<q-td :props="props">
<span v-if="props.row.Type==1">单行文本</span> <table class="payTable">
<span v-if="props.row.Type==2">多行文本</span>
<span v-if="props.row.Type==3">单选</span>
<span v-if="props.row.Type==4">多选</span>
<span v-if="props.row.Type==5">日期</span>
<span v-if="props.row.Type==6">日期时间</span>
<span v-if="props.row.Type==7">数值</span>
</q-td>
</template>
<template v-slot:body-cell-Enable="props">
<q-td :props="props">
<q-toggle v-model="props.row.Enable" :true-value="1" :false-value="2"/>
</q-td>
</template>
<template v-slot:body-cell-Required="props">
<q-td :props="props">
<q-toggle v-model="props.row.Required" :true-value="1" :false-value="2"/>
</q-td>
</template>
<template v-slot:bottom>
<!-- <q-pagination class="full-width justify-end" v-model="msg.PageIndex" color="primary"
:max="msg.PageCount" :input="true" @input="changePage" /> -->
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="编辑" @click="goedit(props.row)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs" label="删除"
@click="goDetailed(props.row)" />
</q-td>
</template>
</q-table> <thead>
<tr>
<th>字段名称</th>
<th>字段类型</th>
<th>所属部门</th>
<th>是否启用</th>
<th>是否必填</th>
<th width="13%">操作信息</th>
<th width="12%">操作</th>
</tr>
</thead>
<tr v-if="data.length==0">
<td :colspan="7" align="center">暂无数据</td>
</tr>
<draggable v-model="data" element="tbody" :move="getdata" @update="datadragEnd">
<tr v-for="(item,index) in data" :key="index">
<td><span>{{item.Name}}</span></td>
<td>
<span v-if="item.IsSystem!=1">{{item.TypeName}}</span>
<span v-if="item.IsSystem==1">系统字段</span>
</td>
<td><span>{{item.DeptName}}</span></td>
<td>
<q-toggle v-if="item.IsLock==1" v-model="item.Enable" :true-value="1" :false-value="2"
icon="lock" disable />
<q-toggle v-else v-model="item.Enable" :true-value="1" :false-value="2" @input="godelete(item,1,index)" />
</td>
<td>
<q-toggle v-model="item.Required" :true-value="1" :false-value="2" @input="godelete(item,2,index)"/>
</td>
<td>
<div>{{item.UpdateByName}}</div>
<div>{{item.UpdateTime}}</div>
</td>
<td>
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="编辑" @click="goedit(item)" />
<q-btn v-if='item.IsDefault!=1' flat size="xs" icon="delete" color="negative" class="q-mr-xs"
label="删除" @click="godelete(item,3,index)" />
</td>
</tr>
</draggable>
</table>
<div v-if="Isadd==true"> <div v-if="Isadd==true">
<addfield :obj='addMsg' @getcancel='Isadd=false'></addfield> <addfield :obj='addMsg' :deptl='deptl' :tabsList='tabsList' :checkboxList='checkboxList'
@getcancel='getcancel'></addfield>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import draggable from "vuedraggable"
import addfield from "./components/addfield" import addfield from "./components/addfield"
import {
getCustomerFiledList,
setCustomerFiledState,
getCustomerFieldInputTypeEnumList,
getCustomerFieldTypeEnumList,
} from '../../../../api/system/wechat';
//部门
import {
getDeptTree
} from '../../../../api/system/dept'
export default { export default {
components: { components: {
addfield addfield,
draggable
}, },
data() { data() {
return { return {
loading: false, loading: false,
msg:{ msg: {
pageIndex:1, pageIndex: 1,
rowsPerPage: 9999, rowsPerPage: 9999,
}, },
columns: [{
name: 'Name', data: [],
label: '字段名称', Isadd: false,
field: 'Name', addMsg: null,
align: 'left' Enable: -1,
deptl: [],//部门下拉
tabsList: [],
checkboxList: [],//输入类型 数组
dragId:0,//拖动的ID
}
},
created() {
this.getList()
this.getDepartList()
this.getFieldInputType()
this.getCustomerFieldType()
}, },
{ methods: {
name: 'Type', goaddfield() {//新增字段
field: 'Type', this.Isadd = true;
label: '字段类型', this.addMsg = null
align: 'left',
}, },
{ goedit(item) {
name: 'branchName', this.Isadd = true;
field: 'branchName', this.addMsg = JSON.parse(JSON.stringify(item))
label: '所属部门',
align: 'left'
}, },
{ godelete(item,type,index) {//删除
name: 'Enable', let text = ''
field: 'Enable', if(type==1){//tyep等于1和2的时候 先让弹出提示 然后再给予掉接口 所以把原本的值暂时先赋值给本身
label: '是否启用', text = '确定修改启用状态'
align: 'left' if(item.Enable==2){
this.data[index].Enable = 1
}else{
this.data[index].Enable = 2
}
}else if(type==2){
text = '确定修改必填状态'
if(item.Required==2){
this.data[index].Required = 1
}else{
this.data[index].Required = 2
}
}else if(type==3){
text = '删除后字段不在显示,是否删除?'
}
this.$q.dialog({
title: "提示信息",
message: text,
cancel: {
label: "取消",
flat: true
}, },
{ ok: {
name: 'Required', label: "确认",
field: 'Required', flat: true,
label: '是否必填', focus: true
align: 'left' }
}).onOk(() => {
this.setFiledState(item, type)
});
}, },
{
name: 'optioned', setFiledState(item, Type) {
label: '操作', let msg = {
field: 'DeptId' Type: Type,
FiledId: item.Id,
SortFiledId: 0,
} }
], setCustomerFiledState(msg).then(res => {
data:[{Name:"性别",Type:"1",branchName:"成都甲鹤",Name:"性别",Enable:1,Required:2,}], if (res.Code == 1) {
Isadd:false, this.$q.notify({
addMsg:null icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: res.Message,
position: 'top'
})
this.getList()
} }
})
}, },
created() { getcancel(type) {
this.Isadd = false;
this.tabsList.forEach(x => {
x.disable = false
})
if (type == 2) {//数据保存成功的处理
this.getList()
}
}, },
methods: { getList() {
goaddfield() {//新增字段 this.loading = true
this.Isadd = true; getCustomerFiledList({ Enable: this.Enable }).then(res => {
this.addMsg=null this.loading = false
if (res.Code == 1) {
this.data = res.Data;
}
})
},
//获取部门下拉数据
getDepartList(id) {
let msg = {
School_Id: 0
}
getDeptTree(msg).then(res => {
if (res.Code == 1) {
this.deptl = res.Data;
}
})
},
getFieldInputType() {//获取客户子段输入类型枚举
getCustomerFieldInputTypeEnumList({}).then(res => {
if (res.Code == 1) {
this.checkboxList = res.Data;
}
})
},
getCustomerFieldType() {
getCustomerFieldTypeEnumList({}).then(res => {
if (res.Code == 1) {
this.tabsList = res.Data;
this.tabsList.forEach(x => {
x.disable = false
})
}
})
},
getdata(e){//拖动中的元素
this.dragId = e.draggedContext.element.Id
},
datadragEnd(e){//拖动结束
let olddragId = 0
if(e.newIndex>0){
olddragId = this.data[e.newIndex-1].Id
}else{
olddragId = 0
}
let msg = {
Type: 4,
FiledId: this.dragId,
SortFiledId: olddragId,
}
setCustomerFiledState(msg).then(res => {
if (res.Code == 1) {
// this.$q.notify({
// icon: 'iconfont icon-chenggong',
// color: 'accent',
// timeout: 2000,
// message: res.Message,
// position: 'top'
// })
}else{//如果移动失败 重新获取列表
this.getList()
}
})
} }
...@@ -128,6 +255,32 @@ ...@@ -128,6 +255,32 @@
</script> </script>
<style> <style>
.customerSetup .payTable {
width: 100%;
border-collapse: collapse;
}
.customerSetup .payTable tr th {
background: #fff;
height: 40px;
font-size: 12px;
font-weight: bold;
color: #2D2D2D;
background: #DDDEE0;
}
.customerSetup .payTable tr {
background: #fff;
text-align: center;
height: 40px;
}
.customerSetup .payTable tr td {
font-size: 13px;
text-align: center;
color: #2D2D2D;
padding: 10px 0;
font-weight: bold;
border-bottom: 1px solid #E5E5E5;
}
</style> </style>
\ No newline at end of file
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