|  | @@ -8,7 +8,6 @@
 | 
	
		
			
				|  |  |      <div class="m-core"
 | 
	
		
			
				|  |  |           style="overflow: hidden">
 | 
	
		
			
				|  |  |        <el-form :model="form"
 | 
	
		
			
				|  |  | -                :rules="rules"
 | 
	
		
			
				|  |  |                  ref="accountForm"
 | 
	
		
			
				|  |  |                  size="small"
 | 
	
		
			
				|  |  |                  :inline="true"
 | 
	
	
		
			
				|  | @@ -20,27 +19,18 @@
 | 
	
		
			
				|  |  |            :closable="false"
 | 
	
		
			
				|  |  |            style="margin-bottom: 20px"
 | 
	
		
			
				|  |  |          ></el-alert>
 | 
	
		
			
				|  |  | -        <el-row>
 | 
	
		
			
				|  |  | -            <el-col :span="5">
 | 
	
		
			
				|  |  | -              <el-form-item label="服务名称"
 | 
	
		
			
				|  |  | -                      prop="name">
 | 
	
		
			
				|  |  | -                <el-input v-model="form.name"
 | 
	
		
			
				|  |  | -                          placeholder="请输入服务名称"></el-input>
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -            <el-col :span="5">
 | 
	
		
			
				|  |  | -              <el-form-item label="产品服务"
 | 
	
		
			
				|  |  | -                      prop="bankCode">
 | 
	
		
			
				|  |  | -                <el-select v-model="form.bankCode"
 | 
	
		
			
				|  |  | -                            placeholder="请选择产品服务">
 | 
	
		
			
				|  |  | -                  <el-option v-for="(item, index) in backList"
 | 
	
		
			
				|  |  | -                              :key="index"
 | 
	
		
			
				|  |  | -                              :label="item.title"
 | 
	
		
			
				|  |  | -                              :value="item.value"></el-option>
 | 
	
		
			
				|  |  | -                </el-select>
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -        </el-row>
 | 
	
		
			
				|  |  | +        <el-form-item label="服务名称" prop="name" :rules="[{ required: true, message: '请输入服务名称', trigger: 'blur' }]">
 | 
	
		
			
				|  |  | +          <el-input v-model="form.name" placeholder="请输入服务名称"></el-input>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="产品服务" prop="productId" :rules="[{ required: true, message: '请选择产品服务', trigger: 'change' }]">
 | 
	
		
			
				|  |  | +          <el-select v-model="form.productId"
 | 
	
		
			
				|  |  | +                      placeholder="请选择产品服务">
 | 
	
		
			
				|  |  | +            <el-option v-for="(item, index) in productList"
 | 
	
		
			
				|  |  | +                        :key="index"
 | 
	
		
			
				|  |  | +                        :label="item.name"
 | 
	
		
			
				|  |  | +                        :value="item.id"></el-option>
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          <el-alert
 | 
	
		
			
				|  |  |            title="服务属性"
 | 
	
	
		
			
				|  | @@ -49,39 +39,48 @@
 | 
	
		
			
				|  |  |            style="margin-bottom: 20px"
 | 
	
		
			
				|  |  |          ></el-alert>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        <div class="serviceAttr">
 | 
	
		
			
				|  |  | -          <el-row>
 | 
	
		
			
				|  |  | -            <el-col :span="5">
 | 
	
		
			
				|  |  | -              <el-form-item label="付费模式"
 | 
	
		
			
				|  |  | -                            prop="legalPerson">
 | 
	
		
			
				|  |  | -                <el-input v-model="form.legalPerson" placeholder="请输入付费模式"></el-input>
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -            <el-col :span="19">
 | 
	
		
			
				|  |  | +        <div class="serviceAttr" v-for="(attrList, index) in form.attrList" :key="index">
 | 
	
		
			
				|  |  | +          <div class="serviceBlock">
 | 
	
		
			
				|  |  | +            <el-form-item label="付费模式"
 | 
	
		
			
				|  |  | +              :prop="'attrList.' + index + '.mode'"
 | 
	
		
			
				|  |  | +              :rules="[{ required: true, message: '请选择付费模式', trigger: 'change' }]">
 | 
	
		
			
				|  |  | +              <el-select v-model="attrList.mode" placeholder="请选择付费模式">
 | 
	
		
			
				|  |  | +                <el-option label="月" value="MONTH"></el-option>
 | 
	
		
			
				|  |  | +                <el-option label="年" value="YEAR"></el-option>
 | 
	
		
			
				|  |  | +              </el-select>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +          <div class="serviceBlock">
 | 
	
		
			
				|  |  | +            <div v-for="(attrItem, i) in attrList.attr" :key="i">
 | 
	
		
			
				|  |  |                <el-form-item label="学员上限"
 | 
	
		
			
				|  |  | -                        prop="legalMp">
 | 
	
		
			
				|  |  | -                <el-input v-model="form.legalMp" placeholder="请输入学员上限">
 | 
	
		
			
				|  |  | +                :prop="'attrList.' + index + '.attr.' + i + '.studentUpLimit'"
 | 
	
		
			
				|  |  | +                :rules="[{ required: true, message: '请输入学员上限', trigger: 'blur' },
 | 
	
		
			
				|  |  | +                  {type: 'number', message: '学员上限必须为数字值' }]">
 | 
	
		
			
				|  |  | +                <el-input v-model.number="attrItem.studentUpLimit" placeholder="请输入学员上限">
 | 
	
		
			
				|  |  |                    <span slot="append">人</span>
 | 
	
		
			
				|  |  |                  </el-input>
 | 
	
		
			
				|  |  |                </el-form-item>
 | 
	
		
			
				|  |  |                <el-form-item label="服务原价"
 | 
	
		
			
				|  |  | -                            prop="legalCertId">
 | 
	
		
			
				|  |  | -                <el-input v-model="form.legalCertId" placeholder="请输入服务原价">
 | 
	
		
			
				|  |  | +                :prop="'attrList.' + index + '.attr.' + i + '.originalPrice'"
 | 
	
		
			
				|  |  | +                :rules="[{ required: true, message: '请输入服务原价', trigger: 'blur' },
 | 
	
		
			
				|  |  | +                  {type: 'number', message: '服务原价必须为数字值' }]">
 | 
	
		
			
				|  |  | +                <el-input v-model.number="attrItem.originalPrice" placeholder="请输入服务原价">
 | 
	
		
			
				|  |  |                    <span slot="append">元</span>
 | 
	
		
			
				|  |  |                  </el-input>
 | 
	
		
			
				|  |  |                </el-form-item>
 | 
	
		
			
				|  |  | -              <el-button icon="el-icon-plus" size="small" circle></el-button>
 | 
	
		
			
				|  |  | -              <el-button icon="el-icon-minus" size="small" circle type="danger"></el-button> 
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -          </el-row>
 | 
	
		
			
				|  |  | -          <el-row>
 | 
	
		
			
				|  |  | -            <el-col :span="13" :offset="5" style="padding-left: 120px">
 | 
	
		
			
				|  |  | -              <el-form-item class="add">
 | 
	
		
			
				|  |  | -                <el-button icon="el-icon-plus" style="width: 200px">添加模式</el-button>
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -          </el-row>
 | 
	
		
			
				|  |  | +              <el-button icon="el-icon-minus" size="small" circle type="danger" @click="onRemoveItem(attrList.attr, i)" :disabled="attrList.attr.length <= 1"></el-button>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <el-form-item class="add" style="padding-left: 120px; display: block;">
 | 
	
		
			
				|  |  | +              <el-button icon="el-icon-plus" style="width: 200px" @click="onAddItem('child', attrList.attr)">添加模式</el-button>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +          <div class="list-remove">
 | 
	
		
			
				|  |  | +            <el-button type="text" size="small" icon="el-icon-delete" @click="onRemoveItem(form.attrList, index)" :disabled="form.attrList.length <= 1">删除</el-button>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  | +        <el-form-item class="add" style="margin-top: 18px">
 | 
	
		
			
				|  |  | +          <el-button icon="el-icon-plus" style="width: 200px" :disabled="form.attrList.length >= 2" @click="onAddItem('parent')">添加模式</el-button>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  |        </el-form>
 | 
	
		
			
				|  |  |        <el-button type="primary" size="small" @click="onSubmit('accountForm')">确 定</el-button>
 | 
	
		
			
				|  |  |        <el-button @click="onCancel" size="small">取 消</el-button>
 | 
	
	
		
			
				|  | @@ -90,62 +89,26 @@
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -// import { cityJson } from "./cityJson";
 | 
	
		
			
				|  |  | -// import { bankJson } from "./bankJson";
 | 
	
		
			
				|  |  | -import { getToken } from "@/utils/auth";
 | 
	
		
			
				|  |  | -import load from '@/utils/loading'
 | 
	
		
			
				|  |  | -// import { createMember, updateMember } from './api.js'
 | 
	
		
			
				|  |  | -import { isvalidPhone } from '@/utils/validate'
 | 
	
		
			
				|  |  | -let validPhone = (rule, value, callback) => {
 | 
	
		
			
				|  |  | -  if (!value) {
 | 
	
		
			
				|  |  | -    callback(new Error('请输入公司法人手机号'))
 | 
	
		
			
				|  |  | -  } else if (!isvalidPhone(value)) {
 | 
	
		
			
				|  |  | -    callback(new Error('请输入正确的11位手机号码'))
 | 
	
		
			
				|  |  | -  } else {
 | 
	
		
			
				|  |  | -    callback()
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +import { platformProductQueryPage } from '../productManger/api'
 | 
	
		
			
				|  |  | +import { platformServeAdd, platformServeUpdate, platformServeQueryInfo } from './api'
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  | -  name: 'ADaPayAccount',
 | 
	
		
			
				|  |  | +  name: 'serviceManger',
 | 
	
		
			
				|  |  |    data () {
 | 
	
		
			
				|  |  |      const query = this.$route.query
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  |        payType: query.type,
 | 
	
		
			
				|  |  | +      productList: [],
 | 
	
		
			
				|  |  |        form: {
 | 
	
		
			
				|  |  | -        memberId: null,
 | 
	
		
			
				|  |  | +        attrList: [{
 | 
	
		
			
				|  |  | +          mode: null,
 | 
	
		
			
				|  |  | +          attr: [{
 | 
	
		
			
				|  |  | +            originalPrice: null,
 | 
	
		
			
				|  |  | +            studentUpLimit: null,
 | 
	
		
			
				|  |  | +          }]
 | 
	
		
			
				|  |  | +        }],
 | 
	
		
			
				|  |  |          name: null,
 | 
	
		
			
				|  |  | -        legalPerson: null,
 | 
	
		
			
				|  |  | -        legalMp: null,
 | 
	
		
			
				|  |  | -        legalCertId: null,
 | 
	
		
			
				|  |  | -        legalCertIdExpires: null,
 | 
	
		
			
				|  |  | -        cardNo: null,
 | 
	
		
			
				|  |  | -        bankCode: null,
 | 
	
		
			
				|  |  | -        provCode: null,
 | 
	
		
			
				|  |  | -        areaCode: null,
 | 
	
		
			
				|  |  | -        socialCreditCode: null,
 | 
	
		
			
				|  |  | -        socialCreditCodeExpires: null,
 | 
	
		
			
				|  |  | -        businessScope: null,
 | 
	
		
			
				|  |  | -        address: null,
 | 
	
		
			
				|  |  | -        multipartFile: null,
 | 
	
		
			
				|  |  | -        zipCode: null
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      rules: {
 | 
	
		
			
				|  |  | -        memberId: [{ required: true, message: '请输入商户号', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        name: [{ required: true, message: '请输入公司名称', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        legalPerson: [{ required: true, message: '请输入公司法人', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        legalMp: [{ type: 'number', required: true, validator: validPhone, trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        legalCertId: [{ required: true, message: '请输入法人身份证号', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        legalCertIdExpires: [{ required: true, message: '请选择身份证有效期', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        cardNo: [{ required: true, message: '请输入银行卡号', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        bankCode: [{ required: true, message: '请选择所属银行', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        provCode: [{ required: true, message: '请选择省份', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        areaCode: [{ required: true, message: '请选择城市', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        socialCreditCode: [{ required: true, message: '请输入统一社会信用码', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        socialCreditCodeExpires: [{ required: true, message: '请选择统一社会信用码有效期', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        businessScope: [{ required: true, message: '请输入经营范围', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        address: [{ required: true, message: '请输入公司地址', trigger: 'blur' }],
 | 
	
		
			
				|  |  | -        multipartFile: [{ required: true, message: '请上传证照文件', trigger: 'change' }],
 | 
	
		
			
				|  |  | -        zipCode: [{ required: true, message: '请输入邮编', trigger: 'blur' }]
 | 
	
		
			
				|  |  | +        productId: null,
 | 
	
		
			
				|  |  | +        id: query.id || null
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
	
		
			
				|  | @@ -153,66 +116,71 @@ export default {
 | 
	
		
			
				|  |  |      this.__init()
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  | -    __init () {
 | 
	
		
			
				|  |  | -      const query = this.$route.query
 | 
	
		
			
				|  |  | -      this.payType = query.type
 | 
	
		
			
				|  |  | -      this.row = query.row ? JSON.parse(query.row) : {}
 | 
	
		
			
				|  |  | -      this.files = null
 | 
	
		
			
				|  |  | -      this.fileList = []
 | 
	
		
			
				|  |  | -      this.form.multipartFile = null
 | 
	
		
			
				|  |  | -      if (this.payType == 'update') {
 | 
	
		
			
				|  |  | -        const row = this.row
 | 
	
		
			
				|  |  | -        this.id = row.id
 | 
	
		
			
				|  |  | -        this.form = {
 | 
	
		
			
				|  |  | -          memberId: row.memberId,
 | 
	
		
			
				|  |  | -          name: row.name,
 | 
	
		
			
				|  |  | -          legalPerson: row.legalPerson,
 | 
	
		
			
				|  |  | -          legalMp: row.legalMp,
 | 
	
		
			
				|  |  | -          legalCertId: row.legalCertId,
 | 
	
		
			
				|  |  | -          legalCertIdExpires: row.legalCertIdExpires,
 | 
	
		
			
				|  |  | -          cardNo: row.cardNo,
 | 
	
		
			
				|  |  | -          bankCode: row.bankCode,
 | 
	
		
			
				|  |  | -          provCode: row.provCode,
 | 
	
		
			
				|  |  | -          areaCode: row.areaCode,
 | 
	
		
			
				|  |  | -          socialCreditCode: row.socialCreditCode,
 | 
	
		
			
				|  |  | -          socialCreditCodeExpires: row.socialCreditCodeExpires,
 | 
	
		
			
				|  |  | -          businessScope: row.businessScope,
 | 
	
		
			
				|  |  | -          address: row.address,
 | 
	
		
			
				|  |  | -          multipartFile: row.multipartFile,
 | 
	
		
			
				|  |  | -          zipCode: row.zipCode
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        this.cityList.forEach(item => {
 | 
	
		
			
				|  |  | -          if (item.value == row.provCode) {
 | 
	
		
			
				|  |  | -            this.selectListCity = item.cities
 | 
	
		
			
				|  |  | +    async __init () {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const res = await platformProductQueryPage({ page: 1, rows: 999 })
 | 
	
		
			
				|  |  | +        this.productList = res.data?.rows || []
 | 
	
		
			
				|  |  | +        if (this.payType == 'update') {
 | 
	
		
			
				|  |  | +          const queryInfo = await platformServeQueryInfo({ id: this.form.id })
 | 
	
		
			
				|  |  | +          console.log(queryInfo)
 | 
	
		
			
				|  |  | +          const result = queryInfo.data || null
 | 
	
		
			
				|  |  | +          if(result) {
 | 
	
		
			
				|  |  | +            this.form.productId = Number(result.productId),
 | 
	
		
			
				|  |  | +            this.form.name = result.name,
 | 
	
		
			
				|  |  | +            this.form.attrList = this.formatAttr(result.detailList, 'asc')
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      } catch(e) {}
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onAddItem(type, row) {
 | 
	
		
			
				|  |  | +      // 添加子项目
 | 
	
		
			
				|  |  | +      if(type == 'child') {
 | 
	
		
			
				|  |  | +        row.push({
 | 
	
		
			
				|  |  | +          mode: null,
 | 
	
		
			
				|  |  | +          originalPrice: null,
 | 
	
		
			
				|  |  | +          studentUpLimit: null,
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      } else if(type == 'parent') {
 | 
	
		
			
				|  |  | +        this.form.attrList.push({
 | 
	
		
			
				|  |  | +          mode: null,
 | 
	
		
			
				|  |  | +          attr: [{
 | 
	
		
			
				|  |  | +            originalPrice: null,
 | 
	
		
			
				|  |  | +            studentUpLimit: null,
 | 
	
		
			
				|  |  | +          }]
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -      } else if (this.payType == 'create') {
 | 
	
		
			
				|  |  | -        this.$refs["accountForm"].resetFields()
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    onRemoveItem(row, index) {
 | 
	
		
			
				|  |  | +      this.$confirm("是否删除?", "提示", {
 | 
	
		
			
				|  |  | +        confirmButtonText: "确定",
 | 
	
		
			
				|  |  | +        cancelButtonText: "取消",
 | 
	
		
			
				|  |  | +        type: "warning",
 | 
	
		
			
				|  |  | +      }).then( async() => {
 | 
	
		
			
				|  |  | +        row.splice(index, 1)
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      async onSubmit (formName) {
 | 
	
		
			
				|  |  |        this.$refs[formName].validate(valid => {
 | 
	
		
			
				|  |  |          if (valid) {
 | 
	
		
			
				|  |  | -          const form = this.form
 | 
	
		
			
				|  |  | -          let formData = new FormData()
 | 
	
		
			
				|  |  | -          formData.append("memberId", form.memberId)
 | 
	
		
			
				|  |  | -          formData.append("name", form.name)
 | 
	
		
			
				|  |  | -          formData.append("legalPerson", form.legalPerson)
 | 
	
		
			
				|  |  | -          formData.append("legalMp", form.legalMp)
 | 
	
		
			
				|  |  | -          formData.append("legalCertId", form.legalCertId)
 | 
	
		
			
				|  |  | -          formData.append("legalCertIdExpires", form.legalCertIdExpires)
 | 
	
		
			
				|  |  | -          formData.append("cardNo", form.cardNo)
 | 
	
		
			
				|  |  | -          formData.append("bankCode", form.bankCode)
 | 
	
		
			
				|  |  | -          formData.append("provCode", form.provCode)
 | 
	
		
			
				|  |  | -          formData.append("areaCode", form.areaCode)
 | 
	
		
			
				|  |  | -          formData.append("socialCreditCode", form.socialCreditCode)
 | 
	
		
			
				|  |  | -          formData.append("socialCreditCodeExpires", form.socialCreditCodeExpires)
 | 
	
		
			
				|  |  | -          formData.append("businessScope", form.businessScope)
 | 
	
		
			
				|  |  | -          formData.append("address", form.address)
 | 
	
		
			
				|  |  | -          formData.append("multipartFile", form.multipartFile)
 | 
	
		
			
				|  |  | -          formData.append("zipCode", form.zipCode)
 | 
	
		
			
				|  |  | +          const { attrList, ...res } = this.form
 | 
	
		
			
				|  |  | +          let isYear = 0, isMonth = 0
 | 
	
		
			
				|  |  | +          attrList.forEach(attr => {
 | 
	
		
			
				|  |  | +            if(attr.mode == 'YEAR') {
 | 
	
		
			
				|  |  | +              isYear++
 | 
	
		
			
				|  |  | +            } else if(attr.mode == 'MONTH') {
 | 
	
		
			
				|  |  | +              isMonth ++
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          if(isYear > 1 || isMonth > 1) {
 | 
	
		
			
				|  |  | +            this.$message.error('付费模式重复')
 | 
	
		
			
				|  |  | +            return
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          const params = {
 | 
	
		
			
				|  |  | +            ...res,
 | 
	
		
			
				|  |  | +            detailList: this.formatAttr(attrList)
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |            if (this.payType == 'create') {
 | 
	
		
			
				|  |  | -            createMember(formData).then(res => {
 | 
	
		
			
				|  |  | +            platformServeAdd(params).then(res => {
 | 
	
		
			
				|  |  |                if (res.code == 200) {
 | 
	
		
			
				|  |  |                  this.$message.success('保存成功')
 | 
	
		
			
				|  |  |                  this.onCancel()
 | 
	
	
		
			
				|  | @@ -221,8 +189,7 @@ export default {
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  |              })
 | 
	
		
			
				|  |  |            } else if (this.payType == 'update') {
 | 
	
		
			
				|  |  | -            formData.append('id', this.id)
 | 
	
		
			
				|  |  | -            updateMember(formData).then(res => {
 | 
	
		
			
				|  |  | +            platformServeUpdate(params).then(res => {
 | 
	
		
			
				|  |  |                if (res.code == 200) {
 | 
	
		
			
				|  |  |                  this.$message.success('保存成功')
 | 
	
		
			
				|  |  |                  this.onCancel()
 | 
	
	
		
			
				|  | @@ -243,25 +210,46 @@ export default {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    handleChange (file) {
 | 
	
		
			
				|  |  | -      this.files = file
 | 
	
		
			
				|  |  | -      this.form.multipartFile = file.raw
 | 
	
		
			
				|  |  | -      this.$refs["accountForm"].validateField('multipartFile')
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    handleRemove (file, fileList) {
 | 
	
		
			
				|  |  | -      this.files = null
 | 
	
		
			
				|  |  | -      this.form.multipartFile = null
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    handlePreview (file) {
 | 
	
		
			
				|  |  | -      //  (file);
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    onProvChange (value) {
 | 
	
		
			
				|  |  | -      this.form.areaCode = null
 | 
	
		
			
				|  |  | -      this.cityList.forEach(item => {
 | 
	
		
			
				|  |  | -        if (item.value == value) {
 | 
	
		
			
				|  |  | -          this.selectListCity = item.cities
 | 
	
		
			
				|  |  | +    formatAttr(row, type) { // 格式化数据
 | 
	
		
			
				|  |  | +      let resultArray = []
 | 
	
		
			
				|  |  | +      if(!row) return
 | 
	
		
			
				|  |  | +      if(type == 'asc') { // 修改时获取数据重新拼装数据
 | 
	
		
			
				|  |  | +        let isType = []
 | 
	
		
			
				|  |  | +        row.forEach(ele => {
 | 
	
		
			
				|  |  | +          if(isType.includes(ele.mode)) {
 | 
	
		
			
				|  |  | +            resultArray.forEach(arr => {
 | 
	
		
			
				|  |  | +              if(arr.mode == ele.mode) {
 | 
	
		
			
				|  |  | +                arr.attr.push({
 | 
	
		
			
				|  |  | +                  originalPrice: ele.originalPrice,
 | 
	
		
			
				|  |  | +                  studentUpLimit: ele.studentUpLimit
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            isType.push(ele.mode)
 | 
	
		
			
				|  |  | +            resultArray.push({
 | 
	
		
			
				|  |  | +              mode: ele.mode,
 | 
	
		
			
				|  |  | +              attr: [{
 | 
	
		
			
				|  |  | +                originalPrice: ele.originalPrice,
 | 
	
		
			
				|  |  | +                studentUpLimit: ele.studentUpLimit
 | 
	
		
			
				|  |  | +              }]
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        for(let item of row) {
 | 
	
		
			
				|  |  | +          if(item.attr && item.attr.length > 0) {
 | 
	
		
			
				|  |  | +            for(let child of item.attr) {
 | 
	
		
			
				|  |  | +              resultArray.push({
 | 
	
		
			
				|  |  | +                mode: item.mode,
 | 
	
		
			
				|  |  | +                originalPrice: child.originalPrice,
 | 
	
		
			
				|  |  | +                studentUpLimit: child.studentUpLimit
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      return resultArray
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      onCancel () {
 | 
	
		
			
				|  |  |        this.$store.dispatch('delVisitedViews', this.$route)
 | 
	
	
		
			
				|  | @@ -273,13 +261,26 @@ export default {
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  <style lang='scss' scoped>
 | 
	
		
			
				|  |  | -.el-input,
 | 
	
		
			
				|  |  | -.el-textarea,
 | 
	
		
			
				|  |  | -.el-select {
 | 
	
		
			
				|  |  | -  width: 100% !important;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  .serviceAttr {
 | 
	
		
			
				|  |  | +  position: relative;
 | 
	
		
			
				|  |  | +  margin-top: 18px;
 | 
	
		
			
				|  |  |    padding-top: 18px;
 | 
	
		
			
				|  |  |    background-color: #f4f4f5;
 | 
	
		
			
				|  |  | +  overflow: hidden;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  flex-wrap: wrap;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +.list-remove {
 | 
	
		
			
				|  |  | +  position: absolute;
 | 
	
		
			
				|  |  | +  right: 20px;
 | 
	
		
			
				|  |  | +  top: 18px;
 | 
	
		
			
				|  |  | +  .el-button--text {
 | 
	
		
			
				|  |  | +    font-size: 18px;
 | 
	
		
			
				|  |  | +    color: #F56C6C;
 | 
	
		
			
				|  |  | +    &.is-disabled {
 | 
	
		
			
				|  |  | +      color: #C0C4CC;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  </style>
 |