| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438 |
- <template>
- <div>
- <el-button type="primary" size="mini" @click="onShow">编 辑</el-button>
- <el-drawer title="编辑合作伙伴" direction="rtl" size="900px" append-to-body :visible.sync="dialogVisible" :show-close="false">
- <div class="drawer__panel">
- <el-row :gutter="20">
- <el-form :model="form" ref="form" :rules="rules" size="small" label-position="right" label-width="120px" class="demo-form-inline">
- <el-col :span="24">
- <p class="normal-title normal-margin">企业信息</p>
- </el-col>
- <el-col :span="12">
- <el-form-item label="企业名称:" prop="enterprisename">
- <el-popover
- placement="bottom"
- width="100%"
- v-model="visible">
- <div>
- <ul class="enterprisePanel">
- <li v-for="item in ENlist" :key="item.sys_enterpriseid" @click="chooseEnterprise(item)">
- <p>{{item.enterprisename}}</p>
- <small>{{item.province}}-{{item.city}}-{{item.county}}</small>
- </li>
- </ul>
- </div>
- <el-input readonly slot="reference" v-model="form.enterprisename" @focus="queryEnterpriseArchives" @input.native="onChange" placeholder="输入企业名称" clearable></el-input>
- </el-popover>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="省市县:">
- <!-- <p class="enterpriseText">{{enterprise.province?enterprise.province:''}}</p>-->
- <el-input v-model="value" disabled></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="联系人:">
- <el-input v-model="enterprise.contact" disabled></el-input>
- <!-- <p class="enterpriseText">{{enterprise.contact?enterprise.contact:''}}</p>-->
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="联系方式:">
- <el-input v-model="enterprise.phonenumber" disabled></el-input>
- <!-- <p class="enterpriseText">{{enterprise.phonenumber?enterprise.phonenumber:''}}</p>-->
- </el-form-item>
- </el-col>
- <el-col :span="24">
- <el-form-item label="详细地址:">
- <el-input v-model="enterprise.address" disabled></el-input>
- <!-- <p class="enterpriseText">{{enterprise.address?enterprise.address:''}}</p>-->
- </el-form-item>
- </el-col>
- <el-col :span="24">
- <p class="normal-title normal-margin">合作伙伴信息</p>
- </el-col>
- <el-col :span="12">
- <el-form-item label="合作状态:" prop="cooperationstatus">
- <el-select v-model="form.cooperationstatus" placeholder="请选择" style="width: 100%" @change="cooperationstatusChange" :disabled="data.cooperationstatus === '正式'">
- <el-option
- v-for="item in cooperationstatus"
- :key="item.label"
- :label="item.label"
- :value="item.label">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="合作伙伴编号" prop="agentnum" v-if="form.cooperationstatus === '正式'" :rules="{required:true,message:'请输入合作伙伴编号',trigger:'blur'}">
- <el-input :disabled="true" v-model="form.agentnum" placeholder="输入合作伙伴编号"></el-input>
- </el-form-item>
- <el-form-item v-else label="合作伙伴编号" prop="agentnum">
- <el-input v-model="form.agentnum" placeholder="输入合作伙伴编号"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item style="height:51px" v-if="form.cooperationstatus === '正式'" label="erp编号:" prop="erpagentnum" :rules="{required:true,message:'请输入erp编号',trigger:'blur'}">
- <el-input v-model="form.erpagentnum" placeholder="输入erp编号"></el-input>
- </el-form-item>
- <el-form-item v-else label="erp编号:" prop="erpagentnum" style="height:51px" :rules="{required:false,message:'请输入erp编号',trigger:'blur'}">
- <el-input v-model="form.erpagentnum" placeholder="输入erp编号"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="合作伙伴类型:" prop="type">
- <el-select
- ref="sle"
- style="width:100%;"
- v-model="form.type"
- multiple
- placeholder="请选择合作伙伴类别"
- size="mini"
- >
- <el-option
- v-for="item in agent_type"
- :key="item.value"
- :label="item.value"
- :value="item.value"
- >
- <!-- <span style="float: left">{{ item.tag }}</span>-->
- <!-- <span style="float: right; color: #8492a6; font-size: 12px">{{ item.helptips?item.helptips:'暂无描述' }}</span>-->
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="签约日期">
- <el-date-picker
- style="width:100%"
- v-model="form.signdate"
- type="date"
- value-format="yyyy-MM-dd"
- placeholder="选择日期">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="企业等级">
- <el-select size="small" style="width:100%" v-model="form.grade" placeholder="请选择">
- <el-option
- v-for="item in agent_level"
- :key="item.value"
- :label="item.remarks"
- :value="item.value">
- <span style="float: left">{{ item.value }}</span>
- <span style="float: right; color: #8492a6; font-size: 12px">{{ item.remarks?item.remarks:'暂无描述' }}</span>
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="可退货天数" prop="limitreturnday">
- <el-input v-model.number="form.limitreturnday" placeholder="请输入订单可退货天数"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="上级合作伙伴:">
- <selectAgent ref="agent" @selectAgent="selectAgent" :title="title"></selectAgent>
- </el-form-item>
- </el-col>
- <el-col :span="12" style="height:51px">
- <el-form-item label="开票节点" prop="invoicingpoint">
- <el-radio-group v-model="form.invoicingpoint">
- <el-radio :label="1">订单审核</el-radio>
- <el-radio :label="2">发货</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item style="height:51px" label="是否授权所有营销类别:" prop="saleclassauth" label-width="160px">
- <el-checkbox v-model="form.saleclassauth" :true-label="0" :false-label="1"></el-checkbox>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="是否免运费">
- <el-radio-group v-model="radio" @change="radioChange">
- <el-radio :label="-1">不免费运费</el-radio>
- <el-radio :label="0">免运费</el-radio>
- <el-radio :label="1">其他</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- <el-col :span="12" v-if="radio === 1">
- <el-form-item label="免运费额度" prop="freefreightamount">
- <el-input v-model.number="form.freefreightamount" placeholder="请输入免运费额度"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12" style="height:51px">
- <el-form-item label="授权标准" prop="standardsauth">
- <el-radio-group v-model="form.standardsauth">
- <el-radio :label="1">关闭</el-radio>
- <el-radio :label="0">开启</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- </el-form>
- </el-row>
- </div>
- <div class="fixed__btn__panel">
- <el-button size="small" @click="dialogVisible = false" class="normal-btn-width">取 消</el-button>
- <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
- </div>
- </el-drawer>
- </div>
- </template>
- <script>
- import selectAgent from '@/components/selectAgent/index.vue'
- export default {
- props:['data','btnType'],
- data () {
- return {
- rules: {
- enterprisename: [
- { required: true, message: '请输入企业名称', trigger: ['blur', 'change'] },
- ],
- // agentnum: [
- // { required: true, message: '请输入经销商编号', trigger: 'blur' },
- // ],
- sa_saleareaids: [
- { required: true, message: '请输入合作伙伴编号', trigger: 'change' },
- ],
- type: [
- { required: true, message: '请选择合作伙伴类型', trigger: 'change' },
- ],
- cooperationstatus: [
- { required: true, message: '请选择合作状态', trigger: 'change' },
- ],
- // erpagentnum: [
- // { required: true, message: '请输入erp经销商编号', trigger: 'change' },
- // ],
- },
- fill:true,
- cooperationstatus:[
- {
- label:'正式'
- },
- {
- label:'意向'
- },
- ],
- dialogVisible:false,
- visible:false,
- form:{
- "enterprisename": "",
- "sa_agentsid": '',
- "parentid": "",
- "agentnum": "",
- "signdate": "",
- "grade": "",
- "sys_enterpriseid": '',
- "sa_saleareaids": [
- ],
- "type": [],
- 'cooperationstatus':'正式',
- "erpagentnum": "",
- "isservice": 0, //是否服务商,0或1
- "limitreturnday": "", //订单可退货天数
- "freefreightamount": "", //免运费额度
- "latitude": "", //纬度
- "longitude": "", //经度
- "invoicingpoint": 1, //开票节点(1:订单审核:2:发货)
- "saleclassauth": 1, //是否需要经营授权,默认1
- "grade":'',
- "standardsauth":''
- },
- ENlist:[],
- agent_level:[],
- arealist:[],
- agent_type:[],
- enterprise:{},
- timer:0,
- radio:-1,
- title:'选择上级合作伙伴',
- value:''
- }
- },
- components:{
- selectAgent
- },
- methods:{
- onShow () {
- this.dialogVisible = true
- this.cooperationstatus === '正式' ? this.fill = true : this.fill = false
- this.query_sysoptions()
- this.query_arealist()
- this.queryMain()
- },
- async queryMain() {
- const res = await this.$api.requested({
- "classname": "webmanage.sale.agents.agents",
- "method": "query_agentMain",
- "content": {
- "sa_agentsid": this.data.sa_agentsid
- }
- })
- this.$refs.agent.value.enterprisename = res.data.parent_enterprisename
- res.data.sa_saleareaids?res.data.sa_saleareaids = JSON.parse(res.data.sa_saleareaids):''
- this.form = Object.assign({},this.form,res.data)
- this.enterprise = Object.assign({},this.form,res.data)
- this.value = `${this.enterprise.province}-${this.enterprise.city}-${this.enterprise.county}`
- if (this.form.province) {
- this.form.province = [this.form.province,this.form.city,this.form.county]
- }
- if (!this.form.grade) this.form.grade = ''
- switch (this.form.freefreightamount) {
- case -1:
- this.radio = -1
- break;
- case 0:
- this.radio = 0
- break;
- default:
- this.radio = 1
- break;
- }
- },
- async queryEnterpriseArchives () {
- const res = await this.$api.requested({
- "id": 20220920083901,
- "content": {
- "pageNumber": 1,
- "pageSize": 20,
- "where": {
- "condition": this.form.enterprisename
- }
- }
- })
- this.ENlist = res.data
- },
- async query_arealist (callback) {
- const res = await this.$api.requested({
- "classname": "webmanage.sale.salearea.salearea",
- "method": "query_area",
- "content": {
- }
- })
- this.arealist = this.createList(res.data)
- },
- createList (array) {
- var that = this
- let arr = []
- function convertToElementTree(node) {
- if (node.subarea && node.subarea.length > 0) {
- for (var index = 0; index < node.subarea.length; index++) {
- convertToElementTree(node.subarea[index])
- }
- } else {
- node.subarea = null
- }
- return node;
- }
- array.forEach((element) => {
- arr.push(convertToElementTree(element))
- });
- return arr
- },
- async query_sysoptions () {
- const res = await this.$store.dispatch('optiontypeselect','agentgrade')
- this.agent_level = res.data
- const res1 = await this.$store.dispatch('optiontypeselect','agenttypemx')
- this.agent_type = res1.data
- },
- radioChange (val) {
- switch (val) {
- case -1:
- this.form.freefreightamount = -1
- break;
- case 0:
- this.form.freefreightamount = 0
- break;
- default:
- this.form.freefreightamount = ''
- break;
- }
- },
- onSubmit () {
- this.$refs['form'].validate(async (valid) => {
- if (!valid) return false
- const res = await this.$api.requested({
- "classname": "webmanage.sale.agents.agents",
- "method": "insertormodify_agent",
- "content": this.form
- })
- this.tool.showMessage(res,()=>{
- this.$emit('onSuccess')
- // this.$refs['form'].resetFields();
- this.dialogVisible = false
- })
- })
- },
- onChange () {
- this.visible = true
- this.debounce(this.queryEnterpriseArchives,1000)()
- },
- onCascaderChange (value) {
- this.form.sa_saleareaid = value.at(-1)
- },
- debounce (fn, wait) {
- return function () {
- if (this.timer !== null) clearTimeout(this.timer)
- this.timer = setTimeout(fn, wait)
- }
- },
- chooseEnterprise (item) {
- this.visible = false
- this.form.enterprisename = item.enterprisename
- this.form.enterpriseid = item.enterpriseid
- item.province = `${item.province}-${item.city}-${item.county}`
- this.enterprise = item
- },
- selectAgent (data) {
- this.form.parentid = data.sa_agentsid
- },
- cooperationstatusChange(){
- if (this.form.cooperationstatus === '正式'){
- this.fill = true
- }else {
- this.fill = false
- }
- }
- },
- }
- </script>
- <style>
- </style>
- <style scoped>
- .enterprisePanel {
- max-height: 400px;
- overflow-y: scroll;
- }
- .enterprisePanel li{
- padding: 10px;
- cursor: pointer;
- line-height: 25px;
- }
- .enterprisePanel li small{
- color: #999;
- }
- .enterprisePanel li:hover{
- background: #f1f2f3;
- }
- .enterpriseText{
- height: 34px;
- line-height: 34px;
- }
- .gz-form-row{
- display: flex;
- flex-wrap: wrap;
- }
- </style>
|