yujialong 11 months ago
parent 8d7049ec42
commit 7473b607db
  1. 23
      src/api/index.js
  2. BIN
      src/assets/images/house.png
  3. BIN
      src/assets/images/mini.jpg
  4. 10
      src/const/user.js
  5. 5
      src/libs/util.js
  6. 51
      src/pages/activity/manage/matchSignup.vue
  7. 263
      src/pages/join/add/index.vue
  8. 70
      src/pages/join/success/index.vue
  9. 60
      src/pages/preschool/audit/index.vue
  10. 122
      src/pages/preschool/list/index.vue
  11. 316
      src/pages/preschool/manage/auth.vue
  12. 489
      src/pages/preschool/manage/basic.vue
  13. 13
      src/pages/preschool/manage/index.vue
  14. 196
      src/pages/preschool/manage/member.vue
  15. 132
      src/pages/supplier/audit/index.vue
  16. 371
      src/pages/supplier/list/index.vue
  17. 188
      src/pages/supplier/manage/auth.vue
  18. 395
      src/pages/supplier/manage/basic.vue
  19. 56
      src/pages/supplier/manage/index.vue
  20. 196
      src/pages/supplier/manage/member.vue
  21. 91
      src/pages/user/detail/index.vue
  22. 54
      src/pages/user/list/index.vue
  23. 14
      src/router/modules/supplier.js
  24. 12
      src/router/routes.js
  25. 15
      src/styles/layout/index.scss

@ -1,11 +1,14 @@
import Setting from '@/setting' import Setting from '@/setting'
const host = Setting.apiBaseURL const host = Setting.apiBaseURL
let host1 = 'http://192.168.31.51:10010/' let host1 = 'http://192.168.31.217:10010/'
// let host1 = 'http://124.71.79.122/'
export default { export default {
logins: `users/users/user/login`, logins: `users/users/user/login`,
verification: `${host}users/users/user/captcha`, verification: `${host}users/users/user/captcha`,
sendPhoneOrEmailCode: `users/users/userAccount/sendPhoneOrEmailCode`,
queryProvince: `nakadai/nakadai/province/queryProvince`, queryProvince: `nakadai/nakadai/province/queryProvince`,
queryCity: `nakadai/nakadai/city/queryCity`, queryCity: `nakadai/nakadai/city/queryCity`,
querySchool: `nakadai/nakadai/school/querySchool`, querySchool: `nakadai/nakadai/school/querySchool`,
@ -20,11 +23,25 @@ export default {
editCompetition: `competition/competition/management/editCompetition`, editCompetition: `competition/competition/management/editCompetition`,
getCompetition: `competition/competition/management/getCompetition`, getCompetition: `competition/competition/management/getCompetition`,
queryRegistrationByCondition: `competition/competition/registration/queryRegistrationByCondition`, queryRegistrationByCondition: `competition/competition/registration/queryRegistrationByCondition`,
enterpriseCertificationDetails: `users/enterprise/certification/enterpriseCertificationDetails`,
delCertification: `users/enterprise/certification/batchDeletion`, delCertification: `users/enterprise/certification/batchDeletion`,
findCertification: `users/enterprise/certification/findById`, findCertification: `users/enterprise/certification/findById`,
selectEnterpriseCertificationList: `users/enterprise/certification/selectEnterpriseCertificationList`, selectEnterpriseCertificationList: `users/enterprise/certification/selectEnterpriseCertificationList`,
informationAudit: `users/enterprise/certification/informationAudit`,
deletePlatformAuthenticationInformation: `users/users/autonym/deletePlatformAuthenticationInformation`,
updateCertification: `users/enterprise/certification/update`,
queryTeamInfo: `nakadai/kindergarten/platformTeamAccount/queryTeamInfo`,
updateTeamInfo: `nakadai/kindergarten/platformTeamAccount/updateTeamInfo`,
platformTeamAccountList: `nakadai/kindergarten/platformTeamAccount/platformTeamAccountList`,
queryUserInfoList: `${host1}users/users/userAccount/queryUserInfoList`, queryUserInfoList: `users/users/userAccount/queryUserInfoList`,
viewUserDetails: `${host1}users/users/userAccount/viewUserDetails`, viewUserDetails: `users/users/userAccount/viewUserDetails`,
updateAccountAllEnable: `users/users/userAccount/updateAccountAllEnable`,
updateTeamStatus: `nakadai/kindergarten/platformTeamAccount/updateTeamStatus`,
delUserAccounts: `users/users/userAccount/delUserAccounts`,
queryUserInfoByPhone: `nakadai/nakadai/partner-team/queryUserInfoByPhone`,
transferAdmin: `nakadai/nakadai/partnerAccount/transferAdmin`,
savePartnerAccount: `nakadai/nakadai/partnerAccount/savePartnerAccount`,
platformTeamAccountList: `nakadai/kindergarten/platformTeamAccount/platformTeamAccountList`,
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

@ -30,15 +30,19 @@ export default {
}, },
{ {
id: 0, id: 0,
name: '默认待审核' name: '未提交'
}, },
{ {
id: 1, id: 1,
name: '通过' name: '待审核'
}, },
{ {
id: 2, id: 2,
name: '驳回' name: '已通过'
},
{
id: 3,
name: '不通过'
}, },
], ],
} }

@ -110,6 +110,11 @@ const util = {
Message.closeAll(); Message.closeAll();
return Message.error({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration }); return Message.error({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration });
}, },
// 判断是否是移动端
isMobile() {
if(window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) return true
return false
},
}; };
export default util; export default util;

@ -1,38 +1,23 @@
<template> <template>
<!-- 报名人员 -->
<div class="page-content" <div class="page-content"
style="padding: 24px"> style="padding: 24px">
<div class="tool"> <div class="tool">
<ul class="filter"> <ul class="filter">
<li> <li>
<label>搜索</label> <label>搜索</label>
<el-input placeholder="请输入姓名/手机号/团队名称/学号" <el-input placeholder="请输入姓名、姓名进行查询"
prefix-icon="el-icon-search" prefix-icon="el-icon-search"
v-model="keyword" v-model="keyword"
clearable clearable
size="mini" size="mini"
style="width: 250px"></el-input> style="width: 250px"></el-input>
</li> </li>
<li>
<label>参数人员状态</label>
<el-select v-model="isDisable"
@change="initData">
<el-option v-for="(item, i) in statusList"
:key="i"
:label="item.name"
:value="item.id"></el-option>
</el-select>
</li>
</ul> </ul>
<div> <div></div>
<!-- <el-button type="primary"
round
@click="exportAll">批量导出</el-button> -->
</div>
</div> </div>
<el-table ref="table" <el-table ref="table"
:data="listData" :data="list"
class="table" class="table"
stripe stripe
header-align="center" header-align="center"
@ -95,25 +80,10 @@ export default {
name: "matchSignup", name: "matchSignup",
data () { data () {
return { return {
token: util.local.get(Setting.tokenKey), id: this.$route.query.id,
id: +this.$route.query.id, teamId: this.$route.query.teamId,
isDisable: '',
statusList: [
{
id: '',
name: '不限'
},
{
id: 1,
name: '已禁用'
},
{
id: 0,
name: '未禁用'
}
],
keyword: "", keyword: "",
listData: [], list: [],
multipleSelection: [], multipleSelection: [],
page: 1, page: 1,
pageSize: 10, pageSize: 10,
@ -133,14 +103,15 @@ export default {
}, },
methods: { methods: {
getData () { getData () {
this.$post(this.api.queryRegistrationByCondition, { this.$post(this.api.platformTeamAccountList, {
type: 1,
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
competitionId: this.id,
keyWord: this.keyword, keyWord: this.keyword,
isDisable: this.isDisable, platformId: 5,
classificationId: this.teamId
}).then(({ data }) => { }).then(({ data }) => {
this.listData = data.records; this.list = data.records;
this.total = data.total; this.total = data.total;
}).catch(res => { }).catch(res => {
}); });

@ -0,0 +1,263 @@
<template>
<div class="wrap">
<div class="join">
<h6>欢迎加入</h6>
<div class="wel">
<div class="icon">
<img src="@/assets/images/house.png"
alt="">
</div>
<p class="text"
style="font-size: 16px">城市合伙人计划</p>
<p class="text">{{ teamName ? (teamName + '邀请你加入他的团队') : '加入并自动为你创建一个团队群组' }}</p>
</div>
<div class="inner">
<el-form class="form"
ref="form"
:model="form"
:rules="rules">
<el-form-item prop="phone">
<el-input v-model.trim="form.phone"
placeholder="请输入手机号"
maxlength="11"
@change="phoneChange"></el-input>
</el-form-item>
<el-form-item prop="code">
<div class="ver-code">
<el-input v-model="form.code"
placeholder="请输入验证码"
maxlength="6"></el-input>
<el-button class="send"
type="text"
@click="sendPhoneCode"
:disabled="phoneDisabled">{{ phoneBtnText }}</el-button>
</div>
</el-form-item>
</el-form>
<el-button class="submit"
type="primary"
@click="submit">立即加入</el-button>
</div>
</div>
</div>
</template>
<script>
import Util from "@/libs/util"
import Setting from "@/setting"
export default {
data () {
return {
provinceId: this.$route.query.provinceId,
provinces: [],
cities: [],
isMobile: Util.isMobile(),
userName: this.$route.query.userName,
teamName: this.$route.query.teamName,
admin: this.$route.query.admin, //
form: {
id: this.$route.query.accountId,
partnerClassificationId: this.$route.query.id,
isTeam: this.$route.query.isTeam, // (0)pc(1)
phone: '',
code: '',
userName: '',
},
rules: {
phone: [
{ required: true, message: '请输入手机号', trigger: 'blur' }
],
code: [
{ required: true, message: "请输入验证码", trigger: 'blur' }
]
},
repeat: false, //
phoneDisabled: false,
phoneTimer: null,
phoneOpener: '',
phoneBtnText: '发送验证码',
submiting: false //
};
},
mounted () {
this.getProvince()
this.form.cityId && this.getCity()
},
methods: {
//
getProvince () {
this.$get(this.api.queryProvince).then(res => {
this.provinces = res.list
}).catch(res => { })
},
//
getCity (val) {
this.$get(this.api.queryCity, {
provinceId: this.form.provinceId
}).then(res => {
this.cities = res.list
if (val) this.form.cityId = ''
}).catch(res => { })
},
//
verifyPhone (phone) {
if (!phone) {
Util.warningMsg("请输入手机号")
return false
}
if (!/^1[3456789]\d{9}$/.test(phone) && !/^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(phone)) {
Util.warningMsg("请输入正确的手机号")
return false
}
return true
},
//
phoneCountdown () {
let count = 60
if (!this.phoneTimer) {
this.phoneDisabled = true
this.phoneTimer = setInterval(() => {
if (count > 0) {
count--
this.phoneBtnText = `${count}秒后重试`
} else {
this.phoneDisabled = false
clearInterval(this.phoneTimer)
this.phoneTimer = null
this.phoneBtnText = `发送验证码`
}
}, 1000)
}
},
//
sendPhoneCode () {
const { phone } = this.form
if (!this.verifyPhone(phone)) return false
this.$post(this.api.sendPhoneOrEmailCode, {
platform: Setting.platformId,
phone,
types: 2
}).then(({ message }) => {
if (message.opener) {
this.phoneCountdown()
this.phoneOpener = message.opener
} else {
Util.errorMsg(message)
}
}).catch(res => { })
},
//
phoneChange () {
const { form } = this
this.$get(this.api.queryUserInfoByPhone, {
phone: form.phone
}).then(({ info }) => {
//
if (info) {
this.repeat = true
form.account = info.account
form.userName = info.userName
} else {
this.repeat = false
}
}).catch(res => { })
},
//
submit () {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.submiting) return false
if (this.phoneRepeat) return Util.warningMsg("该手机号已存在")
if (this.emailRepeat) return Util.warningMsg("该邮箱已存在")
const { form } = this
form.uniqueIdentification = Date.now()
this.submiting = true
this.$post(this.api[this.admin ? 'transferAdmin' : 'savePartnerAccount'], form).then(res => {
this.$router.push('/success')
}).catch(res => {
this.submiting = false
})
}
})
},
}
};
</script>
<style lang="scss" scoped>
.wrap {
height: 100%;
}
.ver-code {
position: relative;
.el-button {
position: absolute;
top: 11px;
right: 10px;
color: #319bf7;
}
}
.join {
width: 436px;
margin: 100px auto 0;
text-align: center;
border-radius: 6px;
background-color: #fff;
border-radius: 6px;
overflow: hidden;
h6 {
padding: 0 15px;
font-size: 18px;
line-height: 48px;
color: #fff;
background-color: #319bf7;
}
.icon {
display: flex;
justify-content: center;
align-items: center;
width: 70px;
height: 70px;
margin: 20px auto;
border-radius: 4px;
background-color: #007eff;
}
.text {
margin-bottom: 10px;
color: #565656;
}
.inner {
padding: 20px;
}
/deep/.el-form-item {
margin-bottom: 25px;
}
/deep/.el-input__inner {
position: relative;
height: 52px;
line-height: 50px;
background-color: #fbfbfb;
border: 1px solid #e1e6f2;
border-radius: 4px !important;
}
.submit {
width: 100%;
padding: 0;
margin-top: 20px;
font-size: 18px;
line-height: 44px;
background-color: #007eff;
border-color: #007eff;
border-radius: 30px;
}
}
@media (max-width: 720px) {
.join {
width: 90%;
margin: 20px auto 0;
.submit {
margin-top: 0;
}
}
}
</style>

@ -0,0 +1,70 @@
<template>
<div class="wrap">
<div class="inner">
<div class="icon">
<i class="el-icon-success icon"></i>
<p class="tips">加入成功</p>
</div>
<p class="text">你已加入城市合伙人计划</p>
<p class="text">请保存并用微信扫以下二维码打开城市合伙人小程序</p>
<img class="qrcode"
src="@/assets/images/mini.jpg"
alt="">
</div>
</div>
</template>
<script>
export default {
data () {
return {
};
},
mounted () {
},
methods: {
}
};
</script>
<style lang="scss" scoped>
.wrap {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
background-color: #f3f6fa;
}
.inner {
width: 436px;
padding: 50px 0;
text-align: center;
border-radius: 6px;
background-color: #fff;
border-radius: 10px;
overflow: hidden;
.icon {
font-size: 40px;
color: #007eff;
}
.tips {
margin: 10px 0;
font-size: 20px;
}
.text {
margin-bottom: 15px;
font-size: 14px;
}
.qrcode {
width: 200px;
}
}
@media (max-width: 720px) {
.inner {
width: 90%;
}
}
</style>

@ -6,51 +6,57 @@
size="small"> size="small">
<el-form-item label="幼儿园名称"> <el-form-item label="幼儿园名称">
<div class="d-inline-block"> <div class="d-inline-block">
<el-input v-model="form.projectName" <el-input v-model="form.companyName"
disabled /> disabled />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="统一社会信用代码"> <el-form-item label="统一社会信用代码">
<div class="d-inline-block"> <div class="d-inline-block">
<el-input disabled <el-input disabled
v-model="form.projectName" /> v-model="form.creditCode" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="法人"> <el-form-item label="法人">
<div class="d-inline-block"> <div class="d-inline-block">
<el-input disabled <el-input disabled
v-model="form.projectName" /> v-model="form.legalPerson" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="营业执照"> <el-form-item label="营业执照">
<img v-if="form.businessLicensePicture"
class="pic"
:src="form.businessLicensePicture"
alt="">
</el-form-item> </el-form-item>
<el-form-item label="办学许可证件"> <el-form-item label="办学许可证件">
<img v-if="form.licenseForRunningSchool"
class="pic"
:src="form.licenseForRunningSchool"
alt="">
</el-form-item> </el-form-item>
<div class="aline"></div> <div class="aline"></div>
<div class="info"> <div class="info">
<div class="field"> <div class="field">
<label>申请人</label> <label>申请人</label>
<p class="val">刘锦棠</p> <p class="val">{{ form.account }}</p>
</div> </div>
<div class="field"> <div class="field">
<label>联系方式</label> <label>联系方式</label>
<p class="val">1356412323</p> <p class="val">{{ form.contactInformation }}</p>
</div> </div>
<div class="field"> <div class="field">
<label>提交时间</label> <label>提交时间</label>
<p class="val">刘锦棠</p> <p class="val">{{ form.submitTime }}</p>
</div> </div>
</div> </div>
</el-form> </el-form>
<div class="btns"> <div class="btns">
<el-button type="primary" <el-button type="primary"
@click="submit(1)">通过</el-button> @click="submit(2)">通过</el-button>
<el-button type="danger" <el-button type="danger"
@click="preview">驳回</el-button> @click="submit(3)">不通过</el-button>
<el-button @click="$router.back()">返回</el-button> <el-button @click="$router.back()">返回</el-button>
</div> </div>
</div> </div>
@ -62,7 +68,7 @@ import Setting from "@/setting";
export default { export default {
data () { data () {
return { return {
id: this.$route.query.id || '', id: this.$route.query.id,
form: {}, form: {},
submiting: false, submiting: false,
}; };
@ -82,32 +88,21 @@ export default {
methods: { methods: {
getData () { getData () {
const { id } = this const { id } = this
id && this.$post(`${this.api.findCertification}?id=${id}`).then(({ data }) => { id && this.$post(`${this.api.enterpriseCertificationDetails}?id=${id}`).then(({ data }) => {
this.form = data this.form = data
this.$nextTick(() => {
this.updateTime = 0
})
}).catch(err => { }) }).catch(err => { })
}, },
// //
submit (status) { async submit (auditStatus) {
const { form } = this
if (this.submiting) return false if (this.submiting) return false
this.submiting = true this.submiting = true
if (form.id) { try {
this.$post(this.api.updateActivity, form).then(res => { await this.$post(`${this.api.informationAudit}?auditStatus=${auditStatus}&id=${this.id}`).then(res => {
this.backList() this.$router.back()
Util.successMsg("修改成功"); Util.successMsg('审核成功!');
}).catch(err => { })
this.submiting = false } catch (e) {
}); this.submiting = true
} else {
this.$post(this.api.saveActivity, form).then(res => {
this.backList()
Util.successMsg("创建成功");
}).catch(err => {
this.submiting = false
});
} }
}, },
} }
@ -115,6 +110,9 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.pic {
max-width: 500px;
}
.info { .info {
.field { .field {
display: flex; display: flex;

@ -11,8 +11,7 @@
@clear="clearprovince"> @clear="clearprovince">
<el-option v-for="(item, i) in provinceList" <el-option v-for="(item, i) in provinceList"
:key="i" :key="i"
:label="item.provinceName" :value="item.provinceName"></el-option>
:value="item.provinceId"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
@ -24,11 +23,10 @@
@change="initData"> @change="initData">
<el-option v-for="(item, i) in cityList" <el-option v-for="(item, i) in cityList"
:key="i" :key="i"
:label="item.cityName" :value="item.cityName"></el-option>
:value="item.cityId"></el-option>
</el-select> </el-select>
</li> </li>
<li> <!-- <li>
<label>来源</label> <label>来源</label>
<el-select v-model="form.platformId" <el-select v-model="form.platformId"
clearable clearable
@ -39,7 +37,7 @@
:label="item.label" :label="item.label"
:value="item.value"></el-option> :value="item.value"></el-option>
</el-select> </el-select>
</li> </li> -->
</ul> </ul>
</div> </div>
@ -66,18 +64,18 @@
@change="initData"> @change="initData">
<el-option v-for="(item, i) in platformList" <el-option v-for="(item, i) in platformList"
:key="i" :key="i"
:label="item.schoolName" :label="item.name"
:value="item.schoolId"></el-option> :value="item.id"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>认证状态</label> <label>认证状态</label>
<el-select v-model="form.auditStatus" <el-select v-model="form.authenticationStatus"
clearable clearable
filterable filterable
placeholder="请选择认证状态" placeholder="请选择认证状态"
@change="initData"> @change="initData">
<el-option v-for="(item, i) in auditStatus" <el-option v-for="(item, i) in authenticationStatus"
:key="i" :key="i"
:label="item.name" :label="item.name"
:value="item.id"></el-option> :value="item.id"></el-option>
@ -94,21 +92,21 @@
</div> </div>
<div class="relative"> <div class="relative">
<el-tabs v-model="active"> <el-tabs v-model="active"
<el-tab-pane label="全部" @tab-click="tabChange">
name="tab1"></el-tab-pane> <el-tab-pane :label="'全部(' + total + ')'"
<el-tab-pane label="待审核" :name="0"></el-tab-pane>
name="tab2"></el-tab-pane> <el-tab-pane :label="'待审核(' + status1 + ')'"
<el-tab-pane label="已通过" :name="1"></el-tab-pane>
name="tab3"></el-tab-pane> <el-tab-pane :label="'已通过(' + status2 + ')'"
<el-tab-pane label="已驳回" :name="2"></el-tab-pane>
name="tab4"></el-tab-pane> <el-tab-pane :label="'不通过(' + status3 + ')'"
<el-tab-pane label="未提交" :name="3"></el-tab-pane>
name="tab5"></el-tab-pane> <el-tab-pane :label="'未提交' + status4 + ')'"
:name="4"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="btn-wrap"> <div class="btn-wrap">
<el-button @click="delAllSelection">批量删除</el-button> <el-button @click="delAllSelection">批量删除</el-button>
<!-- <el-button>批量导出</el-button> -->
</div> </div>
</div> </div>
<el-table :data="list" <el-table :data="list"
@ -131,29 +129,29 @@
label="园所名称" label="园所名称"
min-width="160" min-width="160"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="phone" <el-table-column prop="province"
label="省份" label="省份"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="schoolName" <el-table-column prop="city"
label="城市" label="城市"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="proposer" <el-table-column prop="proposer"
label="申请人" label="申请人"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="phone" <el-table-column prop="contactInformation"
label="手机号" label="手机号"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="submitTime" <el-table-column prop="submitTime"
label="提交时间" label="提交时间"
width="150" width="150"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="createTime"
label="来源"
width="150"
align="center"></el-table-column>
<el-table-column prop="logInNumber" <el-table-column prop="logInNumber"
label="认证状态" label="认证状态"
align="center"></el-table-column> align="center">
<template slot-scope="scope">
{{ authenticationStatus.find(e => e.id === scope.row.authenticationStatus).name }}
</template>
</el-table-column>
<el-table-column prop="lastLoginTime" <el-table-column prop="lastLoginTime"
label="审核状态" label="审核状态"
align="center"> align="center">
@ -166,9 +164,10 @@
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" <el-button type="text"
@click="toDetail(scope.row, 1)" @click="toDetail(scope.row)"
v-auth>查看</el-button> v-auth>查看</el-button>
<el-button type="text" <el-button v-if="scope.row.auditStatus === 1"
type="text"
@click="toAudit(scope.row)" @click="toAudit(scope.row)"
v-auth>审核</el-button> v-auth>审核</el-button>
<el-button type="text" <el-button type="text"
@ -204,15 +203,34 @@ export default {
city: '', city: '',
platformId: '', platformId: '',
auditStatus: null, auditStatus: null,
authenticationStatus: null,
keyWord: '', keyWord: '',
platformSource: 5, platformSource: 5,
}, },
date: [], date: [],
authenticationStatus: [
{
id: null,
name: '不限'
},
{
id: 0,
name: '未认证'
},
{
id: 1,
name: '认证中'
},
{
id: 2,
name: '已认证'
},
],
auditStatus: Const.auditStatus, auditStatus: Const.auditStatus,
platformList: [ platformList: [
{ {
value: '', id: '',
label: '不限' name: '不限'
}, },
], ],
provinceList: [], provinceList: [],
@ -224,7 +242,11 @@ export default {
total: 0, total: 0,
multipleSelection: [], multipleSelection: [],
loading: false, loading: false,
active: 'tab1' active: 0,
status1: 0,
status2: 0,
status3: 0,
status4: 0,
}; };
}, },
watch: { watch: {
@ -251,9 +273,6 @@ export default {
name: '幼儿园管理', name: '幼儿园管理',
route: '/preschool' route: '/preschool'
}, },
{
name: '幼儿园列表'
},
]) ])
this.initData() this.initData()
this.getProvince(); this.getProvince();
@ -266,8 +285,15 @@ export default {
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
}).then(({ data }) => { }).then(({ data }) => {
this.list = data.records const list = data.records
this.total = data.total if (list.length) {
this.status1 = list.filter(e => e.auditStatus === 1).length
this.status2 = list.filter(e => e.auditStatus === 2).length
this.status3 = list.filter(e => e.auditStatus === 3).length
this.status4 = list.filter(e => e.auditStatus === 4).length
this.list = data.records
this.total = data.total
}
this.loading = false this.loading = false
}).catch(res => { }).catch(res => {
this.loading = false this.loading = false
@ -289,24 +315,28 @@ export default {
getCity () { getCity () {
this.clearprovince() this.clearprovince()
this.getCityData() this.getCityData()
this.page = 1 this.initData()
this.getData()
}, },
getCityData () { getCityData () {
this.$get(this.api.queryCity, { this.$get(this.api.queryCity, {
provinceId: this.form.provinces provinceId: this.provinceList.find(e => e.provinceName === this.form.provinces).provinceId
}).then(res => { }).then(res => {
this.cityList = res.list this.cityList = res.list
}).catch(res => { }) }).catch(res => { })
}, },
// tab
tabChange () {
this.form.auditStatus = this.active == 0 ? null : this.active == 4 ? 0 : this.active
this.initData()
},
currentChange (val) { currentChange (val) {
this.page = val this.page = val
this.getData() this.getData()
}, },
toDetail (row, detail) { toDetail (row) {
this.$router.push(`manage?userId=${row.userId}`) this.$router.push(`manage?id=${row.id}&teamId=${row.teamId}`)
}, },
toAudit (row, detail) { toAudit (row) {
this.$router.push(`audit?id=${row.id}`) this.$router.push(`audit?id=${row.id}`)
}, },
handleDelete (row) { handleDelete (row) {

@ -1,57 +1,75 @@
<template> <template>
<div class="page"> <div class="page">
<div class="action">
<span v-if="form.auditStatus !== ''"
class="status">{{ auditStatus.find(e => e.id === form.auditStatus).name }}</span>
<el-button v-if="!editing"
@click="edit">编辑</el-button>
</div>
<el-form label-width="170px" <el-form label-width="170px"
label-suffix=":" label-suffix=":"
class="input-form model" class="input-form model"
size="small"> size="small"
:disabled="!editing">
<el-form-item label="认证状态">
<el-select v-model="form.authenticationStatus"
clearable>
<el-option v-for="(item, i) in authenticationStatus"
:key="i"
:label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="幼儿园名称"> <el-form-item label="幼儿园名称">
<div class="d-inline-block"> <div class="d-inline-block">
<el-input v-model="form.projectName" <el-input v-model="form.companyName" />
disabled />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="统一社会信用代码"> <el-form-item label="统一社会信用代码">
<div class="d-inline-block"> <div class="d-inline-block">
<el-input disabled <el-input v-model="form.creditCode" />
v-model="form.projectName" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="法人"> <el-form-item label="法人">
<div class="d-inline-block"> <div class="d-inline-block">
<el-input disabled <el-input v-model="form.legalPerson" />
v-model="form.projectName" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="营业执照"> <el-form-item label="营业执照">
<img v-if="form.businessLicensePicture"
class="pic"
:src="form.businessLicensePicture"
alt="">
</el-form-item> </el-form-item>
<el-form-item label="办学许可证件"> <el-form-item label="办学许可证件">
<img v-if="form.licenseForRunningSchool"
class="pic"
:src="form.licenseForRunningSchool"
alt="">
</el-form-item> </el-form-item>
<div class="aline"></div> <div class="aline"></div>
<div class="info"> <div class="info">
<div class="field"> <div class="field">
<label>申请人</label> <label>申请人</label>
<p class="val">刘锦棠</p> <p class="val">{{ form.account }}</p>
</div> </div>
<div class="field"> <div class="field">
<label>联系方式</label> <label>联系方式</label>
<p class="val">1356412323</p> <p class="val">{{ form.contactInformation }}</p>
</div> </div>
<div class="field"> <div class="field">
<label>提交时间</label> <label>提交时间</label>
<p class="val">刘锦棠</p> <p class="val">{{ form.submitTime }}</p>
</div> </div>
</div> </div>
</el-form> </el-form>
<div class="btns"> <div class="btns">
<el-button type="primary" <el-button v-if="editing"
@click="save(1)">通过</el-button> type="primary"
<el-button type="danger" @click="submit">保存</el-button>
@click="preview">驳回</el-button> <el-button @click="$router.back()">返回</el-button>
<el-button @click="back">返回</el-button>
</div> </div>
</div> </div>
</template> </template>
@ -59,56 +77,33 @@
<script> <script>
import Util from "@/libs/util"; import Util from "@/libs/util";
import Setting from "@/setting"; import Setting from "@/setting";
import Const from '@/const/user'
export default { export default {
data () { data () {
return { return {
id: this.$route.query.id || '', id: this.$route.query.id,
headers: { auditStatus: Const.auditStatus,
token: Util.local.get(Setting.tokenKey) authenticationStatus: [
}, {
scope: 0, id: 2,
name: '已认证'
},
{
id: 0,
name: '未认证'
},
],
form: { form: {
id: this.$route.query.id || '', companyName: '',
founder: 1, creditCode: '',
isOpen: 0, // (0 1 0) legalPerson: '',
maximumNumber: '', auditStatus: '',
carouselUrl: '', authenticationStatus: ''
coverUrl: '',
activityFileList: [], //
initiator: '',
isNeedCode: 0,
invitationCode: '',
maximumNumber: 0,
signUpStartTime: '',
signUpEndTime: '',
playStartTime: '',
playEndTime: '',
projectDescribe: '',
projectName: '',
publishStatus: 0,
competitionScope: 0,
competitionScope1: []
}, },
fileName: '', editing: false,
signupTime: [],
playTime: [],
sponsorList: [""],
undertakerList: [''],
fileList: [],
submiting: false, submiting: false,
pass: false,
updateTime: 0,
}; };
}, },
watch: {
// ,
form: {
handler () {
this.updateTime++
},
deep: true
},
},
mounted () { mounted () {
this.$store.commit('user/setCrumbs', [ this.$store.commit('user/setCrumbs', [
{ {
@ -116,170 +111,38 @@ export default {
route: '/preschool' route: '/preschool'
}, },
{ {
name: '幼儿园审核' name: '认证信息'
}, },
]) ])
// this.getData() this.getData()
}, },
methods: { methods: {
getData () { getData () {
const { id } = this.form this.$post(`${this.api.enterpriseCertificationDetails}?id=${this.id}`).then(({ data }) => {
id && this.$post(`${this.api.findByIdActivity}?id=${id}`).then(({ data }) => { if (data.authenticationStatus === 1) data.authenticationStatus = ''
if (data.signUpStartTime) this.signupTime = [data.signUpStartTime, data.signUpEndTime]
if (data.playStartTime) this.playTime = [data.playStartTime, data.playEndTime]
this.sponsorList = data.initiator.split(",")
//
const fileList = data.activityFileList
if (fileList) {
fileList.map(e => {
e.name = e.fileName
e.url = e.filePath
})
} else {
data.activityFileList = []
}
this.form = data this.form = data
this.$nextTick(() => {
this.updateTime = 0
})
}).catch(err => { }) }).catch(err => { })
}, },
handleExceed (files, fileList) { //
Util.warningMsg(`当前限制选择 1 个文件,如需更换,请删除上一个文件再重新选择!`); edit () {
}, this.editing = true
beforeRemove (file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
handleRemove () {
Oss.del(this.form.coverUrl)
this.form.coverUrl = ''
},
uploadError (err, file, fileList) {
this.$message({
message: "上传出错,请重试!",
type: "error",
center: true
})
},
//
async handleRequest ({ file }) {
this.form.coverUrl && Oss.del(this.form.coverUrl)
Oss.upload(file).then(res => {
this.form.coverUrl = res.url
})
},
//
uploadAnnexSuccess (file) {
const url = file.url
const data = {
activityId: this.form.id || '',
fileName: file.name,
name: file.name,
filePath: url,
url
}
this.form.activityFileList.push(data)
},
handleExceedAnnex (files, fileList) {
Util.warningMsg(`当前限制选择 5 个文件,如需更换,请删除一个文件再重新选择!`);
},
//
beforeUpload (file) {
const isLt2M = file.size / 1024 / 1024 < 10
if (!isLt2M) Util.warningMsg('请上传小于10MB的附件!')
if (isLt2M) {
this.fileName = file.name
return true
} else {
return false
}
},
handleAnnexRemove (file, fileList) {
Oss.del(file.url)
this.form.activityFileList = fileList
},
//
randomInv () {
let result = ''
for (let i = 0; i < 4; i++) {
result += Math.floor(Math.random() * 10);
}
this.form.invitationCode = result
}, },
// //
save (status) { async submit () {
const { form } = this const { form } = this
form.initiator = this.sponsorList.filter(d => d).join(); if (form.authenticationStatus === '') return Util.warningMsg('请选择认证状态')
if (!form.projectName) return Util.warningMsg("请填写活动名称"); if (!form.companyName) return Util.warningMsg('请输入幼儿园名称')
// if (!form.creditCode) return Util.warningMsg('请输入统一社会信用代码')
if (status) { if (!form.legalPerson) return Util.warningMsg('请输入法人')
if (!form.initiator) return Util.warningMsg("请填写发起方");
if (!form.signUpStartTime) return Util.warningMsg("请选择报名时间");
let now = new Date().getTime();
let signUpStartTime = new Date(form.signUpStartTime).getTime();
let signUpEndTime = new Date(form.signUpEndTime).getTime();
let playStartTime = new Date(form.playStartTime).getTime();
// if (signUpStartTime && now > signUpStartTime) return Util.warningMsg("");
if (!form.playStartTime) return Util.warningMsg("请选择活动时间");
if (playStartTime && signUpEndTime && playStartTime < signUpEndTime) return Util.warningMsg("活动时间不能早于报名结束时间");
if (form.isNeedCode && (!form.invitationCode || form.invitationCode.length !== 4)) return Util.warningMsg('请填写四位数邀请码')
if (!form.projectDescribe) return Util.warningMsg("请填写活动详情");
}
form.publishStatus = status
form.id = this.$route.query.id
if (this.submiting) return false if (this.submiting) return false
this.submiting = true this.submiting = true
if (form.id) { try {
this.$post(this.api.updateActivity, form).then(res => { await this.$post(this.api.updateCertification, form).then(res => {
this.backList() Util.successMsg('保存成功!');
Util.successMsg("修改成功"); this.$router.back()
}).catch(err => {
this.submiting = false
});
} else {
this.$post(this.api.saveActivity, form).then(res => {
this.backList()
Util.successMsg("创建成功");
}).catch(err => {
this.submiting = false
});
}
},
//
preview () {
Util.local.set('activity', this.form)
window.open(this.$router.resolve('preview').href)
},
addSponsor () {
this.sponsorList.push("");
},
delSponsor (index) {
this.sponsorList.splice(index, 1);
},
addOrganizer () {
this.undertakerList.push("");
},
delOrganizer (index) {
this.undertakerList.splice(index, 1);
},
backList () {
this.pass = true
this.updateTime = 0
this.$router.back()
},
back () {
this.pass = true
//
if (this.updateTime) {
this.$confirm(`编辑的内容未保存,是否保存?`, '提示', {
type: 'warning'
}).then(() => {
this.save(this.form.publishStatus)
}).catch(() => {
this.backList()
}) })
} else { } catch (e) {
this.backList() this.submiting = true
} }
}, },
} }
@ -287,4 +150,39 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.page {
position: relative;
padding-bottom: 80px;
.action {
z-index: 1;
position: absolute;
right: 50px;
.status {
margin-right: 10px;
color: #2962ff;
}
}
}
.pic {
max-width: 500px;
}
.input-form.model {
height: calc(100vh - 310px);
}
.info {
.field {
display: flex;
justify-content: space-between;
width: 470px;
margin: 10px 0;
}
label {
font-size: 14px;
}
.val {
font-size: 15px;
font-weight: 600;
color: #333;
}
}
</style> </style>

@ -1,47 +1,156 @@
<template> <template>
<div class="page"> <div class="page">
<div class="action">
<el-button @click="edit">编辑</el-button>
</div>
<el-form label-width="170px" <el-form label-width="170px"
label-suffix=":" label-suffix=":"
class="input-form model" class="input-form model"
size="small"> size="small"
:disabled="!editing">
<el-form-item label="LOGO"> <el-form-item label="LOGO">
<el-upload class="avatar-uploader"
accept=".jpg,.png,.jpeg,.gif"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-remove="handleRemove('logoUrl')"
:on-error="uploadError"
action=""
:http-request="e => handleRequest(e, 'logoUrl')">
<img v-if="form.logoUrl"
:src="form.logoUrl"
class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i>
<p>上传LOGO</p>
</div>
</el-upload>
</el-form-item> </el-form-item>
<el-form-item label="幼儿园名称"> <el-form-item label="幼儿园名称">
<div class="d-inline-block"> <div class="d-inline-block">
<el-input v-model="form.projectName" <el-input v-model="form.classificationName" />
disabled />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="标签"> <el-form-item label="幼儿园slogan">
<el-select v-model="form.patentClassId" <el-input type="textarea"
clearable> v-model="form.slogan" />
<el-option v-for="item in labels" </el-form-item>
:key="item.id" <el-form-item label="省份">
:label="item.name" <el-select v-model="form.province"
:value="item.id"> clearable
</el-option> placeholder="请选择省份"
@change="getCity"
@clear="clearprovince">
<el-option v-for="(item, i) in provinceList"
:key="i"
:value="item.provinceName"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="幼儿园slogan"> <el-form-item label="城市">
<el-input disabled <el-select v-model="form.city"
type="textarea" clearable
v-model="form.projectName" /> placeholder="请选择城市"
:disabled="form.province ? false : true">
<el-option v-for="(item, i) in cityList"
:key="i"
:value="item.cityName"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="地址"> <el-form-item label="地址">
<el-input disabled <el-input type="textarea"
type="textarea" v-model="form.address" />
v-model="form.projectName" />
</el-form-item> </el-form-item>
<el-form-item label="幼儿园简介"> <el-form-item label="幼儿园简介">
<el-input disabled <el-input type="textarea"
type="textarea" v-model="form.briefIntroduction" />
v-model="form.projectName" /> <Upload class="m-t-10"
:limit="3"
:file-list.sync="pics"
:on-remove="handleAnnexRemove"
@onSuccess="uploadPicSuccess">
<template slot="tip">
<p>最多选择3张图片</p>
</template>
</Upload>
</el-form-item>
<el-form-item label="二维码一">
<el-input v-model="form.qrCodeOneName"
placeholder="请输入二维码描述" />
<el-upload class="avatar-uploader m-t-10"
accept=".jpg,.png,.jpeg,.gif"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-remove="handleRemove('qrCodeOneUrl')"
:on-error="uploadError"
action=""
:http-request="e => handleRequest(e, 'qrCodeOneUrl')">
<img v-if="form.qrCodeOneUrl"
:src="form.qrCodeOneUrl"
class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i>
<p>上传第一张二维码</p>
</div>
</el-upload>
</el-form-item>
<el-form-item label="二维码二">
<el-input v-model="form.qrCodeTwoName"
placeholder="请输入二维码描述" />
<el-upload class="avatar-uploader m-t-10"
accept=".jpg,.png,.jpeg,.gif"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-remove="handleRemove('qrCodeTwoUrl')"
:on-error="uploadError"
action=""
:http-request="e => handleRequest(e, 'qrCodeTwoUrl')">
<img v-if="form.qrCodeTwoUrl"
:src="form.qrCodeTwoUrl"
class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i>
<p>上传第二张二维码</p>
</div>
</el-upload>
</el-form-item>
<el-form-item label="二维码三">
<el-input v-model="form.qrCodeThreeName"
placeholder="请输入二维码描述" />
<el-upload class="avatar-uploader m-t-10"
accept=".jpg,.png,.jpeg,.gif"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-remove="handleRemove('qrCodeThreeUrl')"
:on-error="uploadError"
action=""
:http-request="e => handleRequest(e, 'qrCodeThreeUrl')">
<img v-if="form.qrCodeThreeUrl"
:src="form.qrCodeThreeUrl"
class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i>
<p>上传第三张二维码</p>
</div>
</el-upload>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="btns"> <div class="btns">
<el-button @click="back">返回</el-button> <el-button v-if="editing"
type="primary"
@click="submit">保存</el-button>
<el-button @click="$router.back()">返回</el-button>
</div> </div>
</div> </div>
</template> </template>
@ -49,48 +158,40 @@
<script> <script>
import Util from "@/libs/util"; import Util from "@/libs/util";
import Setting from "@/setting"; import Setting from "@/setting";
import Upload from '@/components/upload';
import Oss from '@/components/upload/upload.js'
export default { export default {
data () { data () {
return { return {
id: this.$route.query.id || '', id: this.$route.query.id,
headers: { teamId: this.$route.query.teamId,
token: Util.local.get(Setting.tokenKey)
},
scope: 0,
labels: [],
form: { form: {
id: this.$route.query.id || '', address: '',
founder: 1, briefIntroduction: '',
isOpen: 0, // (0 1 0) city: '',
maximumNumber: '', classificationName: '',
carouselUrl: '', id: '',
coverUrl: '', logoUrl: '',
activityFileList: [], // pictureUrl: '',
initiator: '', province: '',
isNeedCode: 0, qrCodeOneName: '',
invitationCode: '', qrCodeOneUrl: '',
maximumNumber: 0, qrCodeThreeName: '',
signUpStartTime: '', qrCodeThreeUrl: '',
signUpEndTime: '', qrCodeTwoName: '',
playStartTime: '', qrCodeTwoUrl: '',
playEndTime: '', slogan: '',
projectDescribe: '',
projectName: '',
publishStatus: 0,
competitionScope: 0,
competitionScope1: []
}, },
fileName: '', provinceList: [],
signupTime: [], cityList: [],
playTime: [], pics: [],
sponsorList: [""], editing: false,
undertakerList: [''],
fileList: [],
submiting: false, submiting: false,
pass: false,
updateTime: 0,
}; };
}, },
components: {
Upload
},
watch: { watch: {
// , // ,
form: { form: {
@ -107,43 +208,54 @@ export default {
route: '/preschool' route: '/preschool'
}, },
{ {
name: '幼儿园审核' name: '基本信息'
}, },
]) ])
// this.getData() this.getProvince()
this.getData()
}, },
methods: { methods: {
getData () { getData () {
const { id } = this.form this.$get(`${this.api.queryTeamInfo}?teamId=${this.teamId}`).then(res => {
id && this.$post(`${this.api.findByIdActivity}?id=${id}`).then(({ data }) => { Object.assign(this.form, res.teamInfo)
if (data.signUpStartTime) this.signupTime = [data.signUpStartTime, data.signUpEndTime] console.log("🚀 ~ file: basic.vue:120 ~ this.$get ~ this.form:", this.form)
if (data.playStartTime) this.playTime = [data.playStartTime, data.playEndTime]
this.sponsorList = data.initiator.split(",")
//
const fileList = data.activityFileList
if (fileList) {
fileList.map(e => {
e.name = e.fileName
e.url = e.filePath
})
} else {
data.activityFileList = []
}
this.form = data
this.$nextTick(() => {
this.updateTime = 0
})
}).catch(err => { }) }).catch(err => { })
}, },
getProvince () {
this.$get(this.api.queryProvince).then(res => {
this.provinceList = res.list
}).catch(res => { })
},
clearprovince () {
this.form.city = ''
},
//
getCity () {
this.clearprovince()
this.getCityData()
},
getCityData () {
this.$get(this.api.queryCity, {
provinceId: this.provinceList.find(e => e.provinceName === this.form.province).provinceId
}).then(res => {
this.cityList = res.list
}).catch(res => { })
},
//
edit () {
this.editing = true
},
handleExceed (files, fileList) { handleExceed (files, fileList) {
Util.warningMsg(`当前限制选择 1 个文件,如需更换,请删除上一个文件再重新选择!`); Util.warningMsg(`当前限制选择 1 个文件,如需更换,请删除上一个文件再重新选择!`);
}, },
beforeRemove (file, fileList) { beforeRemove (file, fileList) {
return this.$confirm(`确定移除 ${file.name}`); return this.$confirm(`确定移除 ${file.name}`);
}, },
handleRemove () { handleRemove (field) {
Oss.del(this.form.coverUrl) Oss.del(this.form[field])
this.form.coverUrl = '' this.form[field] = ''
}, },
uploadError (err, file, fileList) { uploadError (err, file, fileList) {
this.$message({ this.$message({
@ -152,125 +264,37 @@ export default {
center: true center: true
}) })
}, },
// // logo
async handleRequest ({ file }) { async handleRequest ({ file }, field) {
this.form.coverUrl && Oss.del(this.form.coverUrl) this.form[field] && Oss.del(this.form[field])
Oss.upload(file).then(res => { Oss.upload(file).then(res => {
this.form.coverUrl = res.url this.form[field] = res.url
}) })
}, },
// //
uploadAnnexSuccess (file) { uploadPicSuccess (file) {
const url = file.url console.log(33, this.pics)
const data = {
activityId: this.form.id || '',
fileName: file.name,
name: file.name,
filePath: url,
url
}
this.form.activityFileList.push(data)
},
handleExceedAnnex (files, fileList) {
Util.warningMsg(`当前限制选择 5 个文件,如需更换,请删除一个文件再重新选择!`);
},
//
beforeUpload (file) {
const isLt2M = file.size / 1024 / 1024 < 10
if (!isLt2M) Util.warningMsg('请上传小于10MB的附件!')
if (isLt2M) {
this.fileName = file.name
return true
} else {
return false
}
}, },
handleAnnexRemove (file, fileList) { handleAnnexRemove (file, fileList) {
Oss.del(file.url) Oss.del(file.url)
this.form.activityFileList = fileList this.pics = fileList
},
//
randomInv () {
let result = ''
for (let i = 0; i < 4; i++) {
result += Math.floor(Math.random() * 10);
}
this.form.invitationCode = result
}, },
// //
save (status) { async submit () {
const { form } = this const { form } = this
form.initiator = this.sponsorList.filter(d => d).join(); if (!form.classificationName) return Util.warningMsg('请输入幼儿园名称')
if (!form.projectName) return Util.warningMsg("请填写活动名称");
//
if (status) {
if (!form.initiator) return Util.warningMsg("请填写发起方");
if (!form.signUpStartTime) return Util.warningMsg("请选择报名时间");
let now = new Date().getTime();
let signUpStartTime = new Date(form.signUpStartTime).getTime();
let signUpEndTime = new Date(form.signUpEndTime).getTime();
let playStartTime = new Date(form.playStartTime).getTime();
// if (signUpStartTime && now > signUpStartTime) return Util.warningMsg("");
if (!form.playStartTime) return Util.warningMsg("请选择活动时间");
if (playStartTime && signUpEndTime && playStartTime < signUpEndTime) return Util.warningMsg("活动时间不能早于报名结束时间");
if (form.isNeedCode && (!form.invitationCode || form.invitationCode.length !== 4)) return Util.warningMsg('请填写四位数邀请码')
if (!form.projectDescribe) return Util.warningMsg("请填写活动详情");
}
form.publishStatus = status
form.id = this.$route.query.id
if (this.submiting) return false if (this.submiting) return false
this.submiting = true this.submiting = true
if (form.id) { try {
this.$post(this.api.updateActivity, form).then(res => { await this.$post(this.api.updateTeamInfo, form).then(res => {
this.backList() Util.successMsg('保存成功!');
Util.successMsg("修改成功"); this.$router.back()
}).catch(err => {
this.submiting = false
});
} else {
this.$post(this.api.saveActivity, form).then(res => {
this.backList()
Util.successMsg("创建成功");
}).catch(err => {
this.submiting = false
});
}
},
//
preview () {
Util.local.set('activity', this.form)
window.open(this.$router.resolve('preview').href)
},
addSponsor () {
this.sponsorList.push("");
},
delSponsor (index) {
this.sponsorList.splice(index, 1);
},
addOrganizer () {
this.undertakerList.push("");
},
delOrganizer (index) {
this.undertakerList.splice(index, 1);
},
backList () {
this.pass = true
this.updateTime = 0
this.$router.back()
},
back () {
this.pass = true
//
if (this.updateTime) {
this.$confirm(`编辑的内容未保存,是否保存?`, '提示', {
type: 'warning'
}).then(() => {
this.save(this.form.publishStatus)
}).catch(() => {
this.backList()
}) })
} else { } catch (e) {
this.backList() this.submiting = true
} }
}, },
} }
@ -278,4 +302,95 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.page {
position: relative;
padding-bottom: 80px;
.action {
z-index: 1;
position: absolute;
right: 50px;
.status {
margin-right: 10px;
color: #2962ff;
}
}
}
$upload-width: 140px;
$upload-height: 140px;
$upload-lg-height: 150px;
/deep/ .avatar-uploader {
.el-upload {
position: relative;
width: $upload-width;
height: $upload-height;
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
overflow: hidden;
&:hover {
border-color: #cb221c;
}
.uploader-default {
display: flex;
height: $upload-height;
flex-direction: column;
justify-content: center;
text-align: center;
background: rgba(0, 0, 0, 0.04);
i {
font-size: 20px;
font-weight: bold;
color: #8c939d;
}
p {
margin-top: 10px;
font-size: 14px;
color: rgba(0, 0, 0, 0.65);
line-height: 1;
}
}
}
&.avatar-uploader-lg {
.el-upload {
width: 100%;
max-width: 960px;
height: $upload-lg-height;
.uploader-default {
height: $upload-lg-height;
}
}
}
.avatar {
display: block;
width: $upload-width;
height: $upload-height;
}
.avatar-lg {
display: block;
width: 100%;
height: $upload-lg-height;
}
.el-upload__tip {
margin-top: 0;
p {
font-size: 14px;
color: rgba(0, 0, 0, 0.45);
line-height: 1;
&:first-child {
margin-bottom: 5px;
}
}
}
}
</style> </style>

@ -4,10 +4,12 @@
<a class="item" <a class="item"
v-for="(item, i) in tabs" v-for="(item, i) in tabs"
:key="i" :key="i"
:class="{active: i == active}">{{ item }}</a> :class="{active: i == active}"
@click="tabChange(i)">{{ item }}</a>
</div> </div>
<Basic v-if="active == 'tab1'" /> <Basic v-if="active == 'tab1'" />
<Auth v-else-if="active == 'tab2'" /> <Auth v-else-if="active == 'tab2'" />
<Member v-else-if="active == 'tab3'" />
</div> </div>
</template> </template>
@ -15,6 +17,7 @@
import Setting from "@/setting"; import Setting from "@/setting";
import Basic from './basic' import Basic from './basic'
import Auth from './auth' import Auth from './auth'
import Member from './member'
import { mapState } from "vuex"; import { mapState } from "vuex";
export default { export default {
data () { data () {
@ -22,13 +25,15 @@ export default {
active: 'tab1', active: 'tab1',
tabs: { tabs: {
tab1: "基本信息", tab1: "基本信息",
tab2: "认证信息" tab2: "认证信息",
tab3: "幼儿园成员",
}, },
}; };
}, },
components: { components: {
Basic, Basic,
Auth Auth,
Member
}, },
computed: { computed: {
...mapState('auth', [ ...mapState('auth', [
@ -40,7 +45,7 @@ export default {
}, },
methods: { methods: {
// tab // tab
tabSwitch (i) { tabChange (i) {
this.active = i this.active = i
}, },
} }

@ -0,0 +1,196 @@
<template>
<div class="page-content"
style="padding: 24px">
<div class="tool">
<ul class="filter">
<li>
<label>搜索</label>
<el-input placeholder="请输入姓名、姓名进行查询"
prefix-icon="el-icon-search"
v-model="keyword"
clearable
size="mini"
style="width: 250px"></el-input>
</li>
</ul>
<div></div>
</div>
<el-table ref="table"
:data="list"
class="table"
stripe
header-align="center"
row-key="id">
<el-table-column type="index"
width="60"
label="序号"
align="center">
<template slot-scope="scope">
{{ scope.$index + (page - 1) * pageSize + 1 }}
</template>
</el-table-column>
<el-table-column prop="phone"
label="手机号">
</el-table-column>
<el-table-column prop="userName"
label="姓名">
</el-table-column>
<el-table-column prop="username"
label="角色">
<template slot-scope="scope">
{{ scope.row.isTeam === '1' ? '负责人' : '成员' }}
</template>
</el-table-column>
<el-table-column prop="username"
label="加入时间">
</el-table-column>
<el-table-column prop="username"
label="实名认证">
</el-table-column>
<el-table-column prop="lastLoginTime"
label="最近登录">
</el-table-column>
<!-- <el-table-column label="操作"
align="center"
width="320">
<template slot-scope="scope">
<el-button type="text"
@click="delData(scope.row)">删除</el-button>
<el-switch v-model="scope.row.isDisable"
:active-text="scope.row.isDisable ? '关' : '开'"
:active-value="0"
:inactive-value="1"
style="margin-left: 5px"
@change="switchOff($event,scope.row,scope.$index)"></el-switch>
</template>
</el-table-column> -->
</el-table>
<div class="pagination">
<el-pagination background
layout="total, prev, pager, next"
:total="total"
@current-change="handleCurrentChange"
:current-page="page">
</el-pagination>
</div>
</div>
</template>
<script>
import util from "@/libs/util";
import axios from 'axios'
import Setting from "@/setting";
export default {
name: "matchSignup",
data () {
return {
id: this.$route.query.id,
teamId: this.$route.query.teamId,
keyword: '',
list: [],
multipleSelection: [],
page: 1,
pageSize: 10,
total: 0,
};
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData();
}, 500);
}
},
mounted () {
this.initData()
},
methods: {
getData () {
this.$post(this.api.platformTeamAccountList, {
type: 1,
pageNum: this.page,
pageSize: this.pageSize,
keyWord: this.keyword,
platformId: 5,
classificationId: this.teamId
}).then(({ pageList }) => {
this.list = pageList.records;
this.total = pageList.total;
}).catch(res => { });
},
initData () {
this.page = 1
this.getData()
},
handleSelectionChange (val) {
this.multipleSelection = val;
},
handleCurrentChange (val) {
this.page = val;
this.getData();
},
switchOff (val, row, index) {
this.$put(`${this.api.disableActivityApplicant}?competitionRegistrationId=${row.id}&isDisable=${val}`).then(res => { }).catch(err => { });
},
delData (row) {
this.$confirm("此删除操作不可逆,是否确认删除选中项?", "提示", {
type: "warning"
})
.then(() => {
this.$post(`${this.api.delActivityApplicant}?id=${row.id}`).then(res => {
util.successMsg("删除成功");
this.getData();
}).catch(res => {
});
})
.catch(() => {
});
},
//
sortChange (column) {
// 12
if (column.prop === 'school') this.schoolOrder = column.order ? column.order === 'ascending' ? 2 : 1 : ''
if (column.prop === 'teamName') this.teamOrder = column.order ? column.order === 'ascending' ? 2 : 1 : ''
this.getData()
},
exportAll () {
const data = this.multipleSelection
if (data.length) {
data.map((e, i) => e.id = i + 1)
axios.post(this.api.exportDataInBatchesApplicant, data, {
headers: {
token: this.token
},
responseType: 'blob'
}).then((res) => {
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data]))
}).catch(res => { })
} else {
axios.get(`${this.api.excelExportApplicant}?activityId=${this.id}`, {
headers: {
token: this.token
},
responseType: 'blob'
}).then((res) => {
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data]))
}).catch(res => { })
}
}
}
};
</script>
<style lang="scss" scoped>
/deep/.dia-form {
.w-100 {
width: 100%;
}
.tips {
display: flex;
justify-content: center;
align-items: center;
}
}
</style>

@ -0,0 +1,132 @@
<template>
<div class="page">
<el-form label-width="170px"
label-suffix=":"
class="input-form model"
size="small">
<el-form-item label="幼儿园名称">
<div class="d-inline-block">
<el-input v-model="form.companyName"
disabled />
</div>
</el-form-item>
<el-form-item label="统一社会信用代码">
<div class="d-inline-block">
<el-input disabled
v-model="form.creditCode" />
</div>
</el-form-item>
<el-form-item label="法人">
<div class="d-inline-block">
<el-input disabled
v-model="form.legalPerson" />
</div>
</el-form-item>
<el-form-item label="营业执照">
<img v-if="form.businessLicensePicture"
class="pic"
:src="form.businessLicensePicture"
alt="">
</el-form-item>
<el-form-item label="办学许可证件">
<img v-if="form.licenseForRunningSchool"
class="pic"
:src="form.licenseForRunningSchool"
alt="">
</el-form-item>
<div class="aline"></div>
<div class="info">
<div class="field">
<label>申请人</label>
<p class="val">{{ form.account }}</p>
</div>
<div class="field">
<label>联系方式</label>
<p class="val">{{ form.contactInformation }}</p>
</div>
<div class="field">
<label>提交时间</label>
<p class="val">{{ form.submitTime }}</p>
</div>
</div>
</el-form>
<div class="btns">
<el-button type="primary"
@click="submit(2)">通过</el-button>
<el-button type="danger"
@click="submit(3)">不通过</el-button>
<el-button @click="$router.back()">返回</el-button>
</div>
</div>
</template>
<script>
import Util from "@/libs/util";
import Setting from "@/setting";
export default {
data () {
return {
id: this.$route.query.id || '',
form: {},
submiting: false,
};
},
mounted () {
this.$store.commit('user/setCrumbs', [
{
name: '幼儿园管理',
route: '/preschool'
},
{
name: '幼儿园审核'
},
])
this.getData()
},
methods: {
getData () {
const { id } = this
id && this.$post(`${this.api.enterpriseCertificationDetails}?id=${id}`).then(({ data }) => {
this.form = data
}).catch(err => { })
},
//
async submit (auditStatus) {
if (this.submiting) return false
this.submiting = true
try {
await this.$post(`${this.api.informationAudit}?auditStatus=${auditStatus}&id=${this.id}`).then(res => {
this.$router.back()
Util.successMsg('审核成功!');
})
} catch (e) {
this.submiting = true
}
},
}
};
</script>
<style scoped lang="scss">
.pic {
max-width: 500px;
}
.info {
.field {
display: flex;
justify-content: space-between;
width: 470px;
margin: 10px 0;
}
label {
font-size: 14px;
}
.val {
font-size: 15px;
font-weight: 600;
color: #333;
}
}
</style>

@ -11,8 +11,7 @@
@clear="clearprovince"> @clear="clearprovince">
<el-option v-for="(item, i) in provinceList" <el-option v-for="(item, i) in provinceList"
:key="i" :key="i"
:label="item.provinceName" :value="item.provinceName"></el-option>
:value="item.provinceId"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
@ -21,15 +20,13 @@
clearable clearable
placeholder="请选择城市" placeholder="请选择城市"
:disabled="form.provinces ? false : true" :disabled="form.provinces ? false : true"
@clear="clearcity"
@change="initData"> @change="initData">
<el-option v-for="(item, i) in cityList" <el-option v-for="(item, i) in cityList"
:key="i" :key="i"
:label="item.cityName" :value="item.cityName"></el-option>
:value="item.cityId"></el-option>
</el-select> </el-select>
</li> </li>
<li> <!-- <li>
<label>来源</label> <label>来源</label>
<el-select v-model="form.platformId" <el-select v-model="form.platformId"
clearable clearable
@ -40,7 +37,7 @@
:label="item.label" :label="item.label"
:value="item.value"></el-option> :value="item.value"></el-option>
</el-select> </el-select>
</li> </li> -->
</ul> </ul>
</div> </div>
@ -48,17 +45,15 @@
<ul class="filter"> <ul class="filter">
<li> <li>
<label>创建时间</label> <label>创建时间</label>
<el-radio-group v-model="form.month"> <el-date-picker v-model="date"
<el-date-picker v-model="form.date" align="right"
align="right" unlink-panels
unlink-panels type="daterange"
type="daterange" start-placeholder="开始日期"
start-placeholder="开始日期" end-placeholder="结束日期"
end-placeholder="结束日期" format="yyyy-MM-dd"
format="yyyy-MM-dd" value-format="yyyy-MM-dd"
value-format="yyyy-MM-dd" clearable></el-date-picker>
clearable></el-date-picker>
</el-radio-group>
</li> </li>
<li> <li>
<label>会员状态</label> <label>会员状态</label>
@ -67,53 +62,51 @@
filterable filterable
placeholder="请选择会员状态" placeholder="请选择会员状态"
@change="initData"> @change="initData">
<el-option v-for="(item, i) in schoolList" <el-option v-for="(item, i) in platformList"
:key="i" :key="i"
:label="item.schoolName" :label="item.name"
:value="item.schoolId"></el-option> :value="item.id"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>认证状态</label> <label>认证状态</label>
<el-select v-model="form.schoolId" <el-select v-model="form.authenticationStatus"
clearable clearable
filterable filterable
placeholder="请选择认证状态" placeholder="请选择认证状态"
@change="initData"> @change="initData">
<el-option v-for="(item, i) in schoolList" <el-option v-for="(item, i) in authenticationStatus"
:key="i" :key="i"
:label="item.schoolName" :label="item.name"
:value="item.schoolId"></el-option> :value="item.id"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<el-input style="width: 300px" <el-input style="width: 300px"
placeholder="请输入园所名称、联系人、账号、手机号" placeholder="请输入供应商名称、联系人、账号、手机号"
prefix-icon="el-icon-search" prefix-icon="el-icon-search"
v-model="form.keyword" v-model="form.keyWord"
clearable /> clearable />
</li> </li>
</ul> </ul>
</div> </div>
<div class="relative"> <div class="relative">
<el-tabs v-model="active"> <el-tabs v-model="active"
<el-tab-pane label="全部" @tab-click="tabChange">
name="tab1"></el-tab-pane> <el-tab-pane :label="'全部(' + total + ')'"
<el-tab-pane label="待审核" :name="0"></el-tab-pane>
name="tab2"></el-tab-pane> <el-tab-pane :label="'待审核(' + status1 + ')'"
<el-tab-pane label="已通过" :name="1"></el-tab-pane>
name="tab3"></el-tab-pane> <el-tab-pane :label="'已通过(' + status2 + ')'"
<el-tab-pane label="已驳回" :name="2"></el-tab-pane>
name="tab4"></el-tab-pane> <el-tab-pane :label="'不通过(' + status3 + ')'"
<el-tab-pane label="未提交" :name="3"></el-tab-pane>
name="tab5"></el-tab-pane> <el-tab-pane :label="'未提交' + status4 + ')'"
:name="4"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="btn-wrap"> <div class="btn-wrap">
<el-button type="primary"
@click="add">新增</el-button>
<el-button @click="delAllSelection">批量删除</el-button> <el-button @click="delAllSelection">批量删除</el-button>
<el-button>批量导出</el-button>
</div> </div>
</div> </div>
<el-table :data="list" <el-table :data="list"
@ -129,49 +122,53 @@
align="center" align="center"
:reserve-selection="true"></el-table-column> :reserve-selection="true"></el-table-column>
<el-table-column type="index" <el-table-column type="index"
width="100" width="60"
label="序号" label="序号"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="userName" <el-table-column prop="companyName"
label="园所名称" label="供应商名称"
min-width="160"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="phone" <el-table-column prop="province"
label="省份" label="省份"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="phone" <el-table-column prop="city"
label="用户端权限"
align="center"></el-table-column>
<el-table-column prop="schoolName"
label="城市" label="城市"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="platformName" <el-table-column prop="proposer"
label="联系人" label="申请人"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="phone" <el-table-column prop="contactInformation"
label="手机号" label="手机号"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="phone" <el-table-column prop="submitTime"
label="创建时间" label="提交时间"
align="center"></el-table-column>
<el-table-column prop="createTime"
label="来源"
width="150" width="150"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="logInNumber" <el-table-column prop="logInNumber"
label="认证状态" label="认证状态"
align="center"></el-table-column> align="center">
<template slot-scope="scope">
{{ authenticationStatus.find(e => e.id === scope.row.authenticationStatus).name }}
</template>
</el-table-column>
<el-table-column prop="lastLoginTime" <el-table-column prop="lastLoginTime"
label="审核状态" label="审核状态"
align="center"></el-table-column> align="center">
<template slot-scope="scope">
{{ auditStatus.find(e => e.id === scope.row.auditStatus).name }}
</template>
</el-table-column>
<el-table-column label="操作" <el-table-column label="操作"
width="300" width="140"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" <el-button type="text"
@click="toDetail(scope.row, 1)" @click="toDetail(scope.row)"
v-auth>查看</el-button> v-auth>查看</el-button>
<el-button type="text" <el-button v-if="scope.row.auditStatus === 1"
@click="handleDelete(scope.row)" type="text"
@click="toAudit(scope.row)"
v-auth>审核</el-button> v-auth>审核</el-button>
<el-button type="text" <el-button type="text"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
@ -193,112 +190,79 @@
<script> <script>
import Setting from '@/setting' import Setting from '@/setting'
import Util from '@/libs/util' import Util from '@/libs/util'
import Const from '@/const/user'
export default { export default {
name: 'user', name: 'user',
data () { data () {
return { return {
searchTimer: null, searchTimer: null,
form: { form: {
name: '', startCommitTime: '',
countries: '中国', endCommitTime: '',
provinces: '', provinces: '',
city: '', city: '',
platformId: '', platformId: '',
schoolId: '', auditStatus: null,
accountRole: '', authenticationStatus: null,
keyword: '', keyWord: '',
date: '', platformSource: 6,
startTime: '',
endTime: '',
month: ''
},
accountRoleList: [{
name: '超级管理员',
value: 1
}, },
{ date: [],
name: '管理员', authenticationStatus: [
value: 13
},
{
name: '教师',
value: 14
},
{
name: '学生',
value: 4
}],
countryList: [{
name: '中国'
}],
provinceList: this.$store.state.provinceList,
cityList: [],
schoolList: [],
list: [],
dateList: [{
id: '',
name: '不限'
},
{
id: 3,
name: '3个月内'
},
{
id: 6,
name: '6个月内'
},
{
id: 9,
name: '9个月内'
},
{
id: 12,
name: '1年内'
}],
platformList: [
{ {
value: '', id: null,
label: '不限' name: '不限'
}, },
{ {
value: 1, id: 0,
label: '职站' name: '未认证'
}, },
{ {
value: 2, id: 1,
label: '数据前瞻' name: '认证中'
},
{
id: 2,
name: '已认证'
}, },
], ],
page: +this.$route.query.page || 1, auditStatus: Const.auditStatus,
platformList: [
{
id: '',
name: '不限'
},
],
provinceList: [],
cityList: [],
schoolList: [],
list: [],
page: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
multipleSelection: [], multipleSelection: [],
loading: false, loading: false,
active: 'tab1' active: 0,
status1: 0,
status2: 0,
status3: 0,
status4: 0,
}; };
}, },
watch: { watch: {
'form.keyword': function (val) { 'form.keyWord': function (val) {
clearTimeout(this.searchTimer) clearTimeout(this.searchTimer)
this.searchTimer = setTimeout(() => { this.searchTimer = setTimeout(() => {
this.initData() this.initData()
}, 500) }, 500)
}, },
'form.month': function (val) { date: function (val) {
if (val) {
let unit = 24 * 60 * 60 * 1000
this.form.date = [this.formatDate('yyyy-MM-dd', new Date(new Date().getTime() - unit * 30 * val)), this.formatDate('yyyy-MM-dd', new Date(new Date().getTime() + unit))]
} else {
this.form.date = []
}
},
'form.date': function (val) {
if (val && val.length) { if (val && val.length) {
this.form.startTime = val[0] this.form.startCommitTime = val[0]
this.form.endTime = val[1] this.form.endCommitTime = val[1]
} else { } else {
this.form.startTime = '' this.form.startCommitTime = ''
this.form.endTime = '' this.form.endCommitTime = ''
} }
this.initData() this.initData()
} }
@ -309,51 +273,28 @@ export default {
name: '供应商管理', name: '供应商管理',
route: '/supplier' route: '/supplier'
}, },
{
name: '供应商列表'
},
]) ])
// this.getData() this.initData()
// this.getSchoolData(); this.getProvince();
}, },
methods: { methods: {
getData () { getData () {
let data = {
countries: this.form.countries,
provinceId: this.form.provinces,
cityId: this.form.city,
platformId: this.form.platformId,
schoolId: this.form.schoolId,
month: this.form.month,
creationTime: this.form.startTime,
endTime: this.form.endTime,
roleId: this.form.accountRole,
searchContent: this.form.keyword,
pageNum: this.page,
pageSize: this.pageSize
}
this.loading = true this.loading = true
this.$post(this.api.queryUserInfoList, data).then(({ page, total }) => { this.$post(this.api.selectEnterpriseCertificationList, {
const promises = [] ...this.form,
page.map(e => { pageNum: this.page,
promises.push(new Promise((resolve, reject) => { pageSize: this.pageSize,
// }).then(({ data }) => {
this.$get(this.api.viewUserDetailsforNakadai, { userId: e.userId }).then(({ result }) => { const list = data.records
const platList = result.bindingPlatformAndUserList if (list.length) {
// 1->0-> this.status1 = list.filter(e => e.auditStatus === 1).length
e.isEnable = platList.find(e => e.isEnable) ? 1 : 0 this.status2 = list.filter(e => e.auditStatus === 2).length
e.userIds = platList.map(e => e.userId) // userId this.status3 = list.filter(e => e.auditStatus === 3).length
resolve() this.status4 = list.filter(e => e.auditStatus === 4).length
}).catch((res) => { this.list = data.records
reject() this.total = data.total
}) }
})) this.loading = false
})
Promise.all(promises).then(_ => {
this.list = page
this.total = total
this.loading = false
})
}).catch(res => { }).catch(res => {
this.loading = false this.loading = false
}) })
@ -362,97 +303,69 @@ export default {
this.page = 1 this.page = 1
this.getData() this.getData()
}, },
// getProvince () {
this.$get(this.api.queryProvince).then(res => {
this.provinceList = res.list
}).catch(res => { })
},
clearprovince () { clearprovince () {
this.form.city = '', this.form.city = ''
this.form.schoolId = ''
}, },
// //
getCity () { getCity () {
this.clearprovince() this.clearprovince()
this.getCityData() this.getCityData()
this.page = 1 this.initData()
this.getData()
}, },
getCityData () { getCityData () {
this.$get(this.api.queryCity, { this.$get(this.api.queryCity, {
provinceId: this.form.provinces provinceId: this.provinceList.find(e => e.provinceName === this.form.provinces).provinceId
}).then(res => { }).then(res => {
this.cityList = res.list this.cityList = res.list
}).catch(res => { }) }).catch(res => { })
}, },
// // tab
clearcity () { tabChange () {
this.form.schoolId = '' this.form.auditStatus = this.active == 0 ? null : this.active == 4 ? 0 : this.active
}, this.initData()
// /
getSchool () {
this.clearcity()
this.getSchoolData()
this.page = 1
this.getData()
},
getSchoolData () {
let data = {
provinceId: "",
cityId: ""
}
this.$get(this.api.querySchool, data).then(res => {
this.schoolList = res.list
}).catch(res => { })
}, },
currentChange (val) { currentChange (val) {
this.page = val this.page = val
this.$router.push(`user?page=${val}`)
this.getData() this.getData()
}, },
toDetail (row, detail) { toDetail (row) {
this.$router.push(`/adduser?userId=${row.userId}${detail ? '&show=1' : ''}`) this.$router.push(`manage?id=${row.id}&teamId=${row.teamId}`)
},
toAudit (row) {
this.$router.push(`audit?id=${row.id}`)
}, },
handleDelete (row) { handleDelete (row) {
this.$confirm('确定要删除吗?', '提示', { this.$confirm('确定要删除吗?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$post(this.api.delUserAccounts, row.userIds).then(res => { this.$post(this.api.delCertification, [row.id]).then(res => {
Util.successMsg('删除成功') Util.successMsg('删除成功')
this.getData() this.getData()
}).catch(res => { }) }).catch(res => { })
}).catch(() => { }) }).catch(() => { })
}, },
//
switchUser (val, row) {
this.$get(this.api.updateAccountAllEnable, {
id: row.userId,
isEnable: val,
phone: row.phone
}).then(res => {
Util.successMsg(val ? '启用成功' : '禁用成功')
}).catch(res => { })
},
handleSelectionChange (val) { handleSelectionChange (val) {
this.multipleSelection = val; this.multipleSelection = val;
}, },
delAllSelection () { delAllSelection () {
if (this.multipleSelection.length) { if (this.multipleSelection.length) {
let delList = this.multipleSelection.map(e => e.userId); let delList = this.multipleSelection.map(e => e.id);
this.$confirm('确定要删除选中用户吗?', '提示', { this.$confirm('确定要删除选中数据吗?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$post(this.api.delUserAccounts, delList).then(res => { this.$post(this.api.delCertification, delList).then(res => {
if (delList.length == this.list.length) {
if (this.page > 1) {
this.page = this.page - 1
}
}
Util.successMsg('删除成功') Util.successMsg('删除成功')
this.$refs.table.clearSelection() this.$refs.table.clearSelection()
this.getData() this.getData()
}).catch(res => { }).catch(res => { })
})
}).catch(() => { }) }).catch(() => { })
} else { } else {
Util.errorMsg('请先选择用户 !') Util.errorMsg('请选择数据 !')
} }
}, },
} }

@ -0,0 +1,188 @@
<template>
<div class="page">
<div class="action">
<span v-if="form.auditStatus !== ''"
class="status">{{ auditStatus.find(e => e.id === form.auditStatus).name }}</span>
<el-button v-if="!editing"
@click="edit">编辑</el-button>
</div>
<el-form label-width="170px"
label-suffix=":"
class="input-form model"
size="small"
:disabled="!editing">
<el-form-item label="认证状态">
<el-select v-model="form.authenticationStatus"
clearable>
<el-option v-for="(item, i) in authenticationStatus"
:key="i"
:label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="幼儿园名称">
<div class="d-inline-block">
<el-input v-model="form.companyName" />
</div>
</el-form-item>
<el-form-item label="统一社会信用代码">
<div class="d-inline-block">
<el-input v-model="form.creditCode" />
</div>
</el-form-item>
<el-form-item label="法人">
<div class="d-inline-block">
<el-input v-model="form.legalPerson" />
</div>
</el-form-item>
<el-form-item label="营业执照">
<img v-if="form.businessLicensePicture"
class="pic"
:src="form.businessLicensePicture"
alt="">
</el-form-item>
<el-form-item label="办学许可证件">
<img v-if="form.licenseForRunningSchool"
class="pic"
:src="form.licenseForRunningSchool"
alt="">
</el-form-item>
<div class="aline"></div>
<div class="info">
<div class="field">
<label>申请人</label>
<p class="val">{{ form.account }}</p>
</div>
<div class="field">
<label>联系方式</label>
<p class="val">{{ form.contactInformation }}</p>
</div>
<div class="field">
<label>提交时间</label>
<p class="val">{{ form.submitTime }}</p>
</div>
</div>
</el-form>
<div class="btns">
<el-button v-if="editing"
type="primary"
@click="submit">保存</el-button>
<el-button @click="$router.back()">返回</el-button>
</div>
</div>
</template>
<script>
import Util from "@/libs/util";
import Setting from "@/setting";
import Const from '@/const/user'
export default {
data () {
return {
id: this.$route.query.id,
auditStatus: Const.auditStatus,
authenticationStatus: [
{
id: 2,
name: '已认证'
},
{
id: 0,
name: '未认证'
},
],
form: {
companyName: '',
creditCode: '',
legalPerson: '',
auditStatus: '',
authenticationStatus: ''
},
editing: false,
submiting: false,
};
},
mounted () {
this.$store.commit('user/setCrumbs', [
{
name: '幼儿园管理',
route: '/preschool'
},
{
name: '认证信息'
},
])
this.getData()
},
methods: {
getData () {
this.$post(`${this.api.enterpriseCertificationDetails}?id=${this.id}`).then(({ data }) => {
if (data.authenticationStatus === 1) data.authenticationStatus = ''
this.form = data
}).catch(err => { })
},
//
edit () {
this.editing = true
},
//
async submit () {
const { form } = this
if (form.authenticationStatus === '') return Util.warningMsg('请选择认证状态')
if (!form.companyName) return Util.warningMsg('请输入幼儿园名称')
if (!form.creditCode) return Util.warningMsg('请输入统一社会信用代码')
if (!form.legalPerson) return Util.warningMsg('请输入法人')
if (this.submiting) return false
this.submiting = true
try {
await this.$post(this.api.updateCertification, form).then(res => {
Util.successMsg('保存成功!');
this.$router.back()
})
} catch (e) {
this.submiting = true
}
},
}
};
</script>
<style scoped lang="scss">
.page {
position: relative;
padding-bottom: 80px;
.action {
z-index: 1;
position: absolute;
right: 50px;
.status {
margin-right: 10px;
color: #2962ff;
}
}
}
.pic {
max-width: 500px;
}
.input-form.model {
height: calc(100vh - 310px);
}
.info {
.field {
display: flex;
justify-content: space-between;
width: 470px;
margin: 10px 0;
}
label {
font-size: 14px;
}
.val {
font-size: 15px;
font-weight: 600;
color: #333;
}
}
</style>

@ -0,0 +1,395 @@
<template>
<div class="page">
<div class="action">
<el-button @click="edit">编辑</el-button>
</div>
<el-form label-width="170px"
label-suffix=":"
class="input-form model"
size="small"
:disabled="!editing">
<el-form-item label="LOGO">
<el-upload class="avatar-uploader"
accept=".jpg,.png,.jpeg,.gif"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-remove="handleRemove('logoUrl')"
:on-error="uploadError"
action=""
:http-request="e => handleRequest(e, 'logoUrl')">
<img v-if="form.logoUrl"
:src="form.logoUrl"
class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i>
<p>上传LOGO</p>
</div>
</el-upload>
</el-form-item>
<el-form-item label="幼儿园名称">
<div class="d-inline-block">
<el-input v-model="form.classificationName" />
</div>
</el-form-item>
<el-form-item label="幼儿园slogan">
<el-input type="textarea"
v-model="form.slogan" />
</el-form-item>
<el-form-item label="省份">
<el-select v-model="form.province"
clearable
placeholder="请选择省份"
@change="getCity"
@clear="clearprovince">
<el-option v-for="(item, i) in provinceList"
:key="i"
:value="item.provinceName"></el-option>
</el-select>
</el-form-item>
<el-form-item label="城市">
<el-select v-model="form.city"
clearable
placeholder="请选择城市"
:disabled="form.province ? false : true">
<el-option v-for="(item, i) in cityList"
:key="i"
:value="item.cityName"></el-option>
</el-select>
</el-form-item>
<el-form-item label="地址">
<el-input type="textarea"
v-model="form.address" />
</el-form-item>
<el-form-item label="幼儿园简介">
<el-input type="textarea"
v-model="form.briefIntroduction" />
<Upload class="m-t-10"
:limit="3"
:file-list.sync="pics"
:on-remove="handleAnnexRemove"
@onSuccess="uploadPicSuccess">
<template slot="tip">
<p>最多选择3张图片</p>
</template>
</Upload>
</el-form-item>
<el-form-item label="二维码一">
<el-input v-model="form.qrCodeOneName"
placeholder="请输入二维码描述" />
<el-upload class="avatar-uploader m-t-10"
accept=".jpg,.png,.jpeg,.gif"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-remove="handleRemove('qrCodeOneUrl')"
:on-error="uploadError"
action=""
:http-request="e => handleRequest(e, 'qrCodeOneUrl')">
<img v-if="form.qrCodeOneUrl"
:src="form.qrCodeOneUrl"
class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i>
<p>上传第一张二维码</p>
</div>
</el-upload>
</el-form-item>
<el-form-item label="二维码二">
<el-input v-model="form.qrCodeTwoName"
placeholder="请输入二维码描述" />
<el-upload class="avatar-uploader m-t-10"
accept=".jpg,.png,.jpeg,.gif"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-remove="handleRemove('qrCodeTwoUrl')"
:on-error="uploadError"
action=""
:http-request="e => handleRequest(e, 'qrCodeTwoUrl')">
<img v-if="form.qrCodeTwoUrl"
:src="form.qrCodeTwoUrl"
class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i>
<p>上传第二张二维码</p>
</div>
</el-upload>
</el-form-item>
<el-form-item label="二维码三">
<el-input v-model="form.qrCodeThreeName"
placeholder="请输入二维码描述" />
<el-upload class="avatar-uploader m-t-10"
accept=".jpg,.png,.jpeg,.gif"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-remove="handleRemove('qrCodeThreeUrl')"
:on-error="uploadError"
action=""
:http-request="e => handleRequest(e, 'qrCodeThreeUrl')">
<img v-if="form.qrCodeThreeUrl"
:src="form.qrCodeThreeUrl"
class="avatar">
<div class="uploader-default"
v-else>
<i class="el-icon-plus"></i>
<p>上传第三张二维码</p>
</div>
</el-upload>
</el-form-item>
</el-form>
<div class="btns">
<el-button v-if="editing"
type="primary"
@click="submit">保存</el-button>
<el-button @click="$router.back()">返回</el-button>
</div>
</div>
</template>
<script>
import Util from "@/libs/util";
import Setting from "@/setting";
import Upload from '@/components/upload';
import Oss from '@/components/upload/upload.js'
export default {
data () {
return {
id: this.$route.query.id,
teamId: this.$route.query.teamId,
form: {
address: '',
briefIntroduction: '',
city: '',
classificationName: '',
id: '',
logoUrl: '',
pictureUrl: '',
province: '',
qrCodeOneName: '',
qrCodeOneUrl: '',
qrCodeThreeName: '',
qrCodeThreeUrl: '',
qrCodeTwoName: '',
qrCodeTwoUrl: '',
slogan: '',
},
provinceList: [],
cityList: [],
pics: [],
editing: false,
submiting: false,
};
},
components: {
Upload
},
watch: {
// ,
form: {
handler () {
this.updateTime++
},
deep: true
},
},
mounted () {
this.$store.commit('user/setCrumbs', [
{
name: '供应商管理',
route: '/preschool'
},
{
name: '基本信息'
},
])
this.getProvince()
this.getData()
},
methods: {
getData () {
this.$get(`${this.api.queryTeamInfo}?teamId=${this.teamId}`).then(res => {
Object.assign(this.form, res.teamInfo)
}).catch(err => { })
},
getProvince () {
this.$get(this.api.queryProvince).then(res => {
this.provinceList = res.list
}).catch(res => { })
},
clearprovince () {
this.form.city = ''
},
//
getCity () {
this.clearprovince()
this.getCityData()
},
getCityData () {
this.$get(this.api.queryCity, {
provinceId: this.provinceList.find(e => e.provinceName === this.form.province).provinceId
}).then(res => {
this.cityList = res.list
}).catch(res => { })
},
//
edit () {
this.editing = true
},
handleExceed (files, fileList) {
Util.warningMsg(`当前限制选择 1 个文件,如需更换,请删除上一个文件再重新选择!`);
},
beforeRemove (file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
handleRemove (field) {
Oss.del(this.form[field])
this.form[field] = ''
},
uploadError (err, file, fileList) {
this.$message({
message: "上传出错,请重试!",
type: "error",
center: true
})
},
// logo
async handleRequest ({ file }, field) {
this.form[field] && Oss.del(this.form[field])
Oss.upload(file).then(res => {
this.form[field] = res.url
})
},
//
uploadPicSuccess (file) {
console.log(33, this.pics)
},
handleAnnexRemove (file, fileList) {
Oss.del(file.url)
this.pics = fileList
},
//
async submit () {
const { form } = this
if (!form.classificationName) return Util.warningMsg('请输入幼儿园名称')
if (this.submiting) return false
this.submiting = true
try {
await this.$post(this.api.updateTeamInfo, form).then(res => {
Util.successMsg('保存成功!');
this.$router.back()
})
} catch (e) {
this.submiting = true
}
},
}
};
</script>
<style scoped lang="scss">
.page {
position: relative;
padding-bottom: 80px;
.action {
z-index: 1;
position: absolute;
right: 50px;
.status {
margin-right: 10px;
color: #2962ff;
}
}
}
$upload-width: 140px;
$upload-height: 140px;
$upload-lg-height: 150px;
/deep/ .avatar-uploader {
.el-upload {
position: relative;
width: $upload-width;
height: $upload-height;
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
overflow: hidden;
&:hover {
border-color: #cb221c;
}
.uploader-default {
display: flex;
height: $upload-height;
flex-direction: column;
justify-content: center;
text-align: center;
background: rgba(0, 0, 0, 0.04);
i {
font-size: 20px;
font-weight: bold;
color: #8c939d;
}
p {
margin-top: 10px;
font-size: 14px;
color: rgba(0, 0, 0, 0.65);
line-height: 1;
}
}
}
&.avatar-uploader-lg {
.el-upload {
width: 100%;
max-width: 960px;
height: $upload-lg-height;
.uploader-default {
height: $upload-lg-height;
}
}
}
.avatar {
display: block;
width: $upload-width;
height: $upload-height;
}
.avatar-lg {
display: block;
width: 100%;
height: $upload-lg-height;
}
.el-upload__tip {
margin-top: 0;
p {
font-size: 14px;
color: rgba(0, 0, 0, 0.45);
line-height: 1;
&:first-child {
margin-bottom: 5px;
}
}
}
}
</style>

@ -0,0 +1,56 @@
<template>
<div class="page">
<div class="tabs">
<a class="item"
v-for="(item, i) in tabs"
:key="i"
:class="{active: i == active}"
@click="tabChange(i)">{{ item }}</a>
</div>
<Basic v-if="active == 'tab1'" />
<Auth v-else-if="active == 'tab2'" />
<Member v-else-if="active == 'tab3'" />
</div>
</template>
<script>
import Setting from "@/setting";
import Basic from './basic'
import Auth from './auth'
import Member from './member'
import { mapState } from "vuex";
export default {
data () {
return {
active: 'tab1',
tabs: {
tab1: "基本信息",
tab2: "认证信息",
tab3: "供应商成员",
},
};
},
components: {
Basic,
Auth,
Member
},
computed: {
...mapState('auth', [
'btns'
])
},
mounted () {
},
methods: {
// tab
tabChange (i) {
this.active = i
},
}
};
</script>
<style scoped>
</style>

@ -0,0 +1,196 @@
<template>
<div class="page-content"
style="padding: 24px">
<div class="tool">
<ul class="filter">
<li>
<label>搜索</label>
<el-input placeholder="请输入姓名、姓名进行查询"
prefix-icon="el-icon-search"
v-model="keyword"
clearable
size="mini"
style="width: 250px"></el-input>
</li>
</ul>
<div></div>
</div>
<el-table ref="table"
:data="list"
class="table"
stripe
header-align="center"
row-key="id">
<el-table-column type="index"
width="60"
label="序号"
align="center">
<template slot-scope="scope">
{{ scope.$index + (page - 1) * pageSize + 1 }}
</template>
</el-table-column>
<el-table-column prop="phone"
label="手机号">
</el-table-column>
<el-table-column prop="userName"
label="姓名">
</el-table-column>
<el-table-column prop="username"
label="角色">
<template slot-scope="scope">
{{ scope.row.isTeam === '1' ? '负责人' : '成员' }}
</template>
</el-table-column>
<el-table-column prop="username"
label="加入时间">
</el-table-column>
<el-table-column prop="username"
label="实名认证">
</el-table-column>
<el-table-column prop="lastLoginTime"
label="最近登录">
</el-table-column>
<!-- <el-table-column label="操作"
align="center"
width="320">
<template slot-scope="scope">
<el-button type="text"
@click="delData(scope.row)">删除</el-button>
<el-switch v-model="scope.row.isDisable"
:active-text="scope.row.isDisable ? '关' : '开'"
:active-value="0"
:inactive-value="1"
style="margin-left: 5px"
@change="switchOff($event,scope.row,scope.$index)"></el-switch>
</template>
</el-table-column> -->
</el-table>
<div class="pagination">
<el-pagination background
layout="total, prev, pager, next"
:total="total"
@current-change="handleCurrentChange"
:current-page="page">
</el-pagination>
</div>
</div>
</template>
<script>
import util from "@/libs/util";
import axios from 'axios'
import Setting from "@/setting";
export default {
name: "matchSignup",
data () {
return {
id: this.$route.query.id,
teamId: this.$route.query.teamId,
keyword: '',
list: [],
multipleSelection: [],
page: 1,
pageSize: 10,
total: 0,
};
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData();
}, 500);
}
},
mounted () {
this.initData()
},
methods: {
getData () {
this.$post(this.api.platformTeamAccountList, {
type: 1,
pageNum: this.page,
pageSize: this.pageSize,
keyWord: this.keyword,
platformId: 6,
classificationId: this.teamId
}).then(({ pageList }) => {
this.list = pageList.records;
this.total = pageList.total;
}).catch(res => { });
},
initData () {
this.page = 1
this.getData()
},
handleSelectionChange (val) {
this.multipleSelection = val;
},
handleCurrentChange (val) {
this.page = val;
this.getData();
},
switchOff (val, row, index) {
this.$put(`${this.api.disableActivityApplicant}?competitionRegistrationId=${row.id}&isDisable=${val}`).then(res => { }).catch(err => { });
},
delData (row) {
this.$confirm("此删除操作不可逆,是否确认删除选中项?", "提示", {
type: "warning"
})
.then(() => {
this.$post(`${this.api.delActivityApplicant}?id=${row.id}`).then(res => {
util.successMsg("删除成功");
this.getData();
}).catch(res => {
});
})
.catch(() => {
});
},
//
sortChange (column) {
// 12
if (column.prop === 'school') this.schoolOrder = column.order ? column.order === 'ascending' ? 2 : 1 : ''
if (column.prop === 'teamName') this.teamOrder = column.order ? column.order === 'ascending' ? 2 : 1 : ''
this.getData()
},
exportAll () {
const data = this.multipleSelection
if (data.length) {
data.map((e, i) => e.id = i + 1)
axios.post(this.api.exportDataInBatchesApplicant, data, {
headers: {
token: this.token
},
responseType: 'blob'
}).then((res) => {
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data]))
}).catch(res => { })
} else {
axios.get(`${this.api.excelExportApplicant}?activityId=${this.id}`, {
headers: {
token: this.token
},
responseType: 'blob'
}).then((res) => {
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data]))
}).catch(res => { })
}
}
}
};
</script>
<style lang="scss" scoped>
/deep/.dia-form {
.w-100 {
width: 100%;
}
.tips {
display: flex;
justify-content: center;
align-items: center;
}
}
</style>

@ -3,36 +3,33 @@
<p class="page-name mb">查看用户信息</p> <p class="page-name mb">查看用户信息</p>
<div> <div>
<p class="l-title">账号信息</p> <p class="l-title">账号信息</p>
<el-form ref="form" <el-form v-for="(item, i) in userAccountList"
class="input-form" :key="i"
:model="form" ref="form"
:rules="rules" class="input-form bb"
label-width="120px" label-width="120px"
:disabled="isDetail"> :disabled="isDetail">
<div class="item-line"> <div class="item-line">
<el-form-item prop="phone" <el-form-item label="用户端">
label="个人手机"> <el-input v-model="item.platformName"
<el-input v-model="form.phone" disabled></el-input>
</el-form-item>
<el-form-item label="个人手机">
<el-input v-model="item.phone"
placeholder="请输入手机号" placeholder="请输入手机号"
maxlength="11"></el-input> maxlength="11"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="唯一识别码">
<el-input v-model="form.uniqueIdentification"
disabled></el-input>
</el-form-item>
</div> </div>
<el-form-item prop="email" <el-form-item label="用户名称">
label="邮箱"> <el-input v-model="item.account"
<el-input v-model="form.email" placeholder="请输入用户名称"></el-input>
placeholder="请输入邮箱"
maxlength="11"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="aline"></div> <div class="aline"></div>
<p class="l-title">实名认证信息未实名认证</p> <p class="l-title">实名认证信息{{ form.authentication }}</p>
<el-form ref="form" <el-form ref="form"
class="input-form" class="input-form"
:model="form" :model="form"
@ -85,26 +82,22 @@
width="100" width="100"
label="序号" label="序号"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="companyName" <el-table-column prop="organizationName"
label="组织名称" label="组织名称"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="companyName" <el-table-column prop="companyName"
label="类型" label="类型"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ platformSource.find(e => e.id == scope.row.platformSource).name }} {{ platformSource.find(e => e.id == scope.row.platformId).name }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="creditCode" <el-table-column prop="creditCode"
label="统一社会信用代码" label="统一社会信用代码"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="workNumber" <el-table-column prop="authentication"
label="组织认证状态" label="组织认证状态"
align="center"> align="center"></el-table-column>
<template slot-scope="scope">
{{ auditStatus.find(e => e.id === scope.row.auditStatus).name }}
</template>
</el-table-column>
<el-table-column prop="roleName" <el-table-column prop="roleName"
label="组织会员状态" label="组织会员状态"
align="center"></el-table-column> align="center"></el-table-column>
@ -116,14 +109,13 @@
@click="show(scope.row)">查看</el-button> @click="show(scope.row)">查看</el-button>
<el-button type="text" <el-button type="text"
@click="del(scope.row)">移除</el-button> @click="del(scope.row)">移除</el-button>
<el-switch v-if="scope.row.userId!==1" <el-switch v-if="scope.row.openId!==1"
v-model="scope.row.isEnable" v-model="scope.row.isEnable"
:active-value="1" :active-value="0"
:inactive-value="0" :inactive-value="1"
style="margin: 0 10px 0 5px" style="margin: 0 10px 0 5px"
:active-text="scope.row.isEnable ? '启用' : '禁用'" :active-text="scope.row.isEnable ? '禁用' : '启用'"
@change="switchUser($event,scope.row,scope.$index)" @change="switchUser($event,scope.row,scope.$index)"></el-switch>
v-auth="'/user:启用'"></el-switch>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -137,13 +129,13 @@ export default {
name: 'baseform', name: 'baseform',
data () { data () {
return { return {
userId: this.$route.query.userId, openId: this.$route.query.openId,
auditStatus: Const.auditStatus, auditStatus: Const.auditStatus,
platformSource: Const.platformSource, platformSource: Const.platformSource,
isDetail: this.$route.query.show === '1', // isDetail: this.$route.query.show === '1', //
form: { form: {
// //
userId: '', openId: '',
userName: '', // userName: '', //
uniqueIdentification: '', // uniqueIdentification: '', //
idNumber: '', // idNumber: '', //
@ -153,6 +145,7 @@ export default {
rules: { rules: {
userName: [{ required: true, message: '请输入用户姓名', trigger: 'blur' }] userName: [{ required: true, message: '请输入用户姓名', trigger: 'blur' }]
}, },
userAccountList: [],
platformList: [], // platformList: [], //
}; };
}, },
@ -166,17 +159,24 @@ export default {
name: '查看用户信息' name: '查看用户信息'
}, },
]) ])
this.userId && this.getdata() this.openId && this.getdata()
}, },
methods: { methods: {
getdata () { getdata () {
this.$get(this.api.viewUserDetails, { userId: this.userId }).then(({ result }) => { this.$get(this.api.viewUserDetails, { openId: this.openId }).then(({ result }) => {
const info = result.hrUserInfo const info = result.hrUserInfo
info.phone = result.userAccount.phone // info.phone = result.userAccount.phone
// MD51313 // MD51313
if (info.phone) info.uniqueIdentification = md5(info.phone).slice(0, 13) // if (info.phone) info.uniqueIdentification = md5(info.phone).slice(0, 13)
this.form = info this.form = info
this.platformList = result.enterpriseCertificationList if (result.userAccountList) {
result.userAccountList.forEach(e => {
e.platformName = this.platformSource.find(n => n.id == e.platformId).name
})
this.userAccountList = result.userAccountList
console.log(333, this.userAccountList)
}
this.platformList = result.organizationInfoList
}).catch((res) => { }) }).catch((res) => { })
}, },
goback () { goback () {
@ -184,24 +184,21 @@ export default {
}, },
// //
switchUser (val, row) { switchUser (val, row) {
this.$get(this.api.updateAccountEnable, { this.$post(`${this.api.updateTeamStatus}?teamId=${row.teamId}&isEnable=${val}`).then(res => {
id: row.accountId, this.$message.success(val ? '禁用成功' : '启用成功')
isEnable: val
}).then(res => {
this.$message.success(val ? '启用成功' : '禁用成功')
}).catch(res => { }).catch(res => {
row.isEnable = 0 row.isEnable = 0
}) })
}, },
show (row) { show (row) {
this.$router.push(`/info?userId=${row.userId}&platformName=${row.platformName}`) this.$router.push(`/info?openId=${row.openId}&platformName=${row.platformName}`)
}, },
// //
del (row) { del (row) {
this.$confirm('确定要移除吗?', '提示', { this.$confirm('确定要移除吗?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$post(this.api.delUserAccounts, [row.userId]).then(res => { this.$post(this.api.delUserAccounts, [row.openId]).then(res => {
this.$message.success('移除成功') this.$message.success('移除成功')
this.getData() this.getData()
}).catch(res => { }) }).catch(res => { })
@ -213,6 +210,10 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.bb:not(:last-child) {
margin-bottom: 20px;
border-bottom: 1px solid #f1f1f1;
}
.l-title { .l-title {
margin-bottom: 15px; margin-bottom: 15px;
font-size: 15px; font-size: 15px;

@ -62,6 +62,10 @@
clearable /> clearable />
</li> </li>
</ul> </ul>
<div>
<el-button @click="delAllSelection"
v-auth>批量删除</el-button>
</div>
</div> </div>
<el-table :data="list" <el-table :data="list"
@ -92,7 +96,7 @@
<el-table-column prop="platformName" <el-table-column prop="platformName"
label="来源" label="来源"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="phone" <el-table-column prop="authentication"
label="实名认证" label="实名认证"
align="center"></el-table-column> align="center"></el-table-column>
<el-table-column prop="createTime" <el-table-column prop="createTime"
@ -121,7 +125,7 @@
:inactive-value="0" :inactive-value="0"
style="margin: 0 10px 0 5px" style="margin: 0 10px 0 5px"
:active-text="scope.row.isEnable ? '启用' : '禁用'" :active-text="scope.row.isEnable ? '启用' : '禁用'"
@change="switchOff($event,scope.row,scope.$index)"></el-switch> @change="switchOff($event, scope.row)"></el-switch>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -282,74 +286,46 @@ export default {
this.getData() this.getData()
}, },
toDetail (row, detail) { toDetail (row, detail) {
this.$router.push(`detail?userId=${row.userId}${detail ? '&show=1' : ''}`) this.$router.push(`detail?openId=${row.appOpenId}${detail ? '&show=1' : ''}`)
}, },
handleDelete (row) { handleDelete (row) {
this.$confirm('确定要删除吗?', '提示', { this.$confirm('确定要删除吗?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$post(this.api.delUserAccounts, row.userIds).then(res => { this.$post(this.api.delUserAccounts, [row.userId]).then(async (res) => {
await this.$post(this.api.deletePlatformAuthenticationInformation, [row.appOpenId])
Util.successMsg('删除成功') Util.successMsg('删除成功')
this.getData() this.getData()
}).catch(res => { }) }).catch(res => { })
}).catch(() => { }) }).catch(() => { })
}, },
// //
switchUser (val, row) { switchOff (val, row) {
this.$get(this.api.updateAccountAllEnable, { this.$get(this.api.updateAccountAllEnable, {
id: row.userId, id: row.userId,
isEnable: val, isEnable: val,
phone: row.phone
}).then(res => { }).then(res => {
Util.successMsg(val ? '启用成功' : '禁用成功') Util.successMsg(val ? '启用成功' : '禁用成功')
}).catch(res => { }) }).catch(res => { })
}, },
//
switchOff (val, row) {
//
if (val) {
//
this.$post(`${this.api.oneClickEnableVerification}?accountId=${row.accountId}`).then(({ result }) => {
this.switchUser(val, row)
}).catch((res) => {
//
this.$confirm(res.message, '提示', {
type: 'info'
}).then(() => {
this.switchUser(val, row)
}).catch(() => {
//
row.isEnable = 0
})
})
} else {
this.switchUser(val, row)
}
},
handleSelectionChange (val) { handleSelectionChange (val) {
this.multipleSelection = val; this.multipleSelection = val;
}, },
delAllSelection () { delAllSelection () {
if (this.multipleSelection.length) { if (this.multipleSelection.length) {
let delList = this.multipleSelection.map(e => e.userId); let delList = this.multipleSelection.map(e => e.userId);
this.$confirm('确定要删除选中用户吗?', '提示', { this.$confirm('确定要删除选中数据吗?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$post(this.api.delUserAccounts, delList).then(res => { this.$post(this.api.delUserAccounts, delList).then(async (res) => {
if (delList.length == this.list.length) { await this.$post(this.api.deletePlatformAuthenticationInformation, this.multipleSelection.map(e => e.appOpenId))
if (this.page > 1) {
this.page = this.page - 1
}
}
Util.successMsg('删除成功') Util.successMsg('删除成功')
this.$refs.table.clearSelection() this.$refs.table.clearSelection()
this.getData() this.getData()
}).catch(res => { }).catch(res => { })
})
}).catch(() => { }) }).catch(() => { })
} else { } else {
Util.errorMsg('请先选择客户 !') Util.errorMsg('请先选择数据 !')
} }
}, },
} }

@ -18,6 +18,18 @@ export default {
path: `list`, path: `list`,
component: () => import('@/pages/supplier/list'), component: () => import('@/pages/supplier/list'),
meta: { title: '供应商列表' } meta: { title: '供应商列表' }
} },
{
name: `${pre}audit`,
path: `audit`,
component: () => import("@/pages/supplier/audit"),
meta: { title: '供应商审核' }
},
{
name: `${pre}manage`,
path: `manage`,
component: () => import("@/pages/supplier/manage"),
meta: { title: '供应商信息管理' }
},
] ]
} }

@ -41,7 +41,17 @@ const frameOut = [
path: "/redirect", path: "/redirect",
name: "redirect", name: "redirect",
component: () => import("@/pages/account/redirect") component: () => import("@/pages/account/redirect")
} },
{
path: `/join`,
component: () => import('@/pages/join/add'),
meta: { title: 'GPAC' }
},
{
path: `/join/success`,
component: () => import('@/pages/join/success'),
meta: { title: 'GPAC' }
}
]; ];
/** /**
* 错误页面 * 错误页面

@ -1,17 +1,16 @@
@import "lib/var"; @import 'lib/var';
@import "var"; @import 'var';
html, html,
body, body,
#app, #app,
.wrapper { .wrapper {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
body { body {
min-width: 1280px; font-family: PingFang, PingFang SC, 'Helvetica Neue', Helvetica, 'microsoft yahei', arial, STHeiTi, sans-serif;
font-family: PingFang, PingFang SC, "Helvetica Neue", Helvetica, "microsoft yahei", arial, STHeiTi, sans-serif; font-size: 14px;
font-size: 14px; background: #f0f2f5;
background: #F0F2F5;
} }
Loading…
Cancel
Save