commit
This commit is contained in:
@@ -35,6 +35,9 @@ layout("/layouts/platform.html"){
|
||||
<el-button icon="el-icon-search" @click="doSearch" type="primary"></el-button>
|
||||
|
||||
<div style="margin-left: auto">
|
||||
<el-button @click="doSettingMemberRole" type="primary" size="medium">
|
||||
同步会员角色
|
||||
</el-button>
|
||||
<el-button size="medium" @click="openAdd" type="primary">
|
||||
<i class="ti-plus"></i>
|
||||
新建角色
|
||||
|
||||
@@ -110,7 +110,10 @@ layout("/layouts/platform.html"){
|
||||
id: '',
|
||||
taskId: '',
|
||||
clubList: [],
|
||||
formData: {},
|
||||
formData: {
|
||||
clubId: '',
|
||||
files: []
|
||||
},
|
||||
formRules: {
|
||||
clubId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
@@ -123,7 +126,10 @@ layout("/layouts/platform.html"){
|
||||
this.id = ''
|
||||
this.taskId = ''
|
||||
this.$refs.guava.edit(() => {
|
||||
this.formData = {}
|
||||
this.$set(this, "formData", {
|
||||
clubId: '',
|
||||
files: []
|
||||
})
|
||||
})
|
||||
},
|
||||
onRevoke(row) {
|
||||
|
||||
@@ -169,6 +169,9 @@ const CLUB_FORM_TEMPLATE = {
|
||||
formData: {
|
||||
clubName: "",
|
||||
clubType: "",
|
||||
foundTime: "",
|
||||
establishReport: [],
|
||||
rulesFile: [],
|
||||
introduce: CLUB_DEFAULT_INTRODUCE
|
||||
},
|
||||
formRules: {
|
||||
|
||||
@@ -64,7 +64,7 @@ layout("/layouts/platform.html"){
|
||||
nextStep() {
|
||||
let valid = true
|
||||
this.$refs.clubFormRef.$refs.form.validateField(
|
||||
["clubName", "establishReport", "rulesFile"],
|
||||
["clubName", "clubType", "foundTime", "establishReport", "rulesFile"],
|
||||
(errMsg) => {
|
||||
if (!errMsg) {
|
||||
valid = false
|
||||
@@ -101,6 +101,19 @@ layout("/layouts/platform.html"){
|
||||
async doHandle(type) {
|
||||
let formData = {}
|
||||
try {
|
||||
const managePerson = this.$refs.clubManagerRef.managePerson
|
||||
if (['onFinishTask', 'onSubmit'].includes(type)) {
|
||||
const hasPresident = managePerson.some((item) =>
|
||||
item.roleCode === CLUB_ROLE_CONSTANT.CLUB_PRESIDENT && item.userId
|
||||
)
|
||||
const hasSecretary = managePerson.some((item) =>
|
||||
item.roleCode === CLUB_ROLE_CONSTANT.CLUB_SECRETARY && item.userId
|
||||
)
|
||||
if (!hasPresident || !hasSecretary) {
|
||||
this.$message.warning({ title: "警告", message: "请填写协会理事机构中的会长和秘书长" })
|
||||
return
|
||||
}
|
||||
}
|
||||
/*let hz = this.$refs.clubManagerRef.managePerson.filter((o) => o.roleCode === CLUB_ROLE_CONSTANT.CLUB_PRESIDENT)
|
||||
if (hz.length !== 1) {
|
||||
this.$message.warning({ title: "警告", message: "会长需要1人" })
|
||||
@@ -149,7 +162,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
const resp = await this.$axios.post(url, {
|
||||
club: JSON.stringify(cloneData),
|
||||
managePerson: this.$refs.clubManagerRef.managePerson,
|
||||
managePerson: managePerson,
|
||||
deleteIds: JSON.stringify(this.deleteIds),
|
||||
taskId: GetQueryString("taskId")
|
||||
})
|
||||
|
||||
@@ -19,8 +19,8 @@ layout("/layouts/platform.html"){
|
||||
<el-option v-for="item in clubList" :label="item.clubName" :value="item.id" :key="item.id"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="人员状态:">
|
||||
<dict-select clearable code="USER_STATE" placeholder="请选择人员状态" v-model="pageForm.userState"></dict-select>
|
||||
<search-item label="在职状态:">
|
||||
<dict-select clearable code="USER_STATE" placeholder="请选择在职状态" v-model="pageForm.userState"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="性别:">
|
||||
<el-select clearable filterable placeholder="请选择性别" v-model="pageForm.sex">
|
||||
|
||||
@@ -464,7 +464,7 @@ layout("/layouts/platform.html"){
|
||||
this.chartResizeObserver = new ResizeObserver(() => {
|
||||
this.handleChartResize()
|
||||
})
|
||||
;["memberPercentageChart", "memberSexPercentageChart"].forEach((containerId) => {
|
||||
;["memberPercentageChart", "memberSexPercentageChart", "personTypeMemberChart"].forEach((containerId) => {
|
||||
const container = document.getElementById(containerId)
|
||||
if (container) {
|
||||
this.chartResizeObserver.observe(container)
|
||||
@@ -768,9 +768,12 @@ layout("/layouts/platform.html"){
|
||||
|
||||
if (chart.personTypeMemberChart) {
|
||||
chart.personTypeMemberChart.changeData(data)
|
||||
this.handleChartResize()
|
||||
return
|
||||
}
|
||||
|
||||
// 首次进入页面时容器可能尚未完成布局,等待尺寸有效后再创建图表。
|
||||
this.waitChartContainerReady("personTypeMemberChart", () => {
|
||||
chart.personTypeMemberChart = new G2Plot.Column("personTypeMemberChart", {
|
||||
data,
|
||||
autoFit: true,
|
||||
@@ -854,6 +857,8 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
chart.personTypeMemberChart.render()
|
||||
this.handleChartResize()
|
||||
})
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@ const welfareOption = {
|
||||
<div class="welfare-option">
|
||||
<el-card shadow="never">
|
||||
<el-table :data="welfareList" border style="width: 100%; margin-top: 20px;">
|
||||
<el-table-column align="center" header-align="center" label="福利名称">
|
||||
<!-- 通过最小宽度权重按 50% / 20% / 15% / 15% 分配列宽,避免福利名称列占用过多空间。 -->
|
||||
<el-table-column align="center" header-align="center" label="福利名称" min-width="500">
|
||||
<template slot-scope="{row}">
|
||||
<el-input
|
||||
v-model="row.optionName"
|
||||
@@ -12,7 +13,7 @@ const welfareOption = {
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="图片" width="200">
|
||||
<el-table-column align="center" header-align="center" label="图片" min-width="200">
|
||||
<template slot-scope="{row}">
|
||||
<file-upload :upload_number="1" :value.sync="row.imgUrl"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
@@ -23,7 +24,7 @@ const welfareOption = {
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="说明" width="120">
|
||||
<el-table-column align="center" header-align="center" label="说明" min-width="150">
|
||||
<template slot-scope="{row, $index}">
|
||||
<el-button
|
||||
type="text"
|
||||
@@ -33,7 +34,7 @@ const welfareOption = {
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="操作" width="100">
|
||||
<el-table-column align="center" header-align="center" label="操作" min-width="150">
|
||||
<template slot-scope="{$index}">
|
||||
<el-button
|
||||
type="danger"
|
||||
|
||||
@@ -49,7 +49,7 @@ const optionSelect = {
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<div class="info-label">发放地点</div>
|
||||
<div class="info-label">发放部门</div>
|
||||
<div class="info-value">{{ projectInfo.provideAddress }}</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -138,7 +138,7 @@ const optionSelect = {
|
||||
append-to-body
|
||||
custom-class="welfare-confirm-dialog">
|
||||
<div class="confirm-content">
|
||||
<!-- 联系电话输入 -->
|
||||
<!-- 手机号输入 -->
|
||||
<div class="confirm-mobile-section">
|
||||
<div class="confirm-section-title">联系信息</div>
|
||||
<el-form :model="contactForm" ref="contactForm" :rules="contactRules" label-width="80px">
|
||||
@@ -160,7 +160,7 @@ const optionSelect = {
|
||||
<el-col :span="4" v-if="projectInfo.provideMode == 3">
|
||||
<el-button @click="openAddress" type="primary" size="small">添加地址</el-button>
|
||||
</el-col>
|
||||
<el-col :span="24" v-if="projectInfo.provideMode == 3">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="userName" label="收货人">
|
||||
<el-input
|
||||
v-model="contactForm.userName"
|
||||
@@ -170,7 +170,7 @@ const optionSelect = {
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="mobile" label="联系电话">
|
||||
<el-form-item prop="mobile" label="手机号">
|
||||
<el-input
|
||||
v-model="contactForm.mobile"
|
||||
placeholder="请输入手机号码"
|
||||
@@ -273,7 +273,7 @@ const optionSelect = {
|
||||
{required: true, message: "请输入收货人", trigger: "blur"}
|
||||
],
|
||||
mobile: [
|
||||
{required: true, message: "请输入联系电话", trigger: "blur"},
|
||||
{required: true, message: "请输入手机号", trigger: "blur"},
|
||||
{
|
||||
pattern: /^1[3456789]\d{9}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
|
||||
@@ -71,7 +71,7 @@ layout("/layouts/platform_h5.html"){
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(2)">不同意</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(2)">拒绝</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,7 +71,7 @@ layout("/layouts/platform_h5.html"){
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(20)">不同意</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(20)">拒绝</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -603,7 +603,7 @@ layout("/layouts/platform_h5.html"){
|
||||
:value="formatTimeRange(projectInfo.choiceTimeStart, projectInfo.choiceTimeEnd)"></van-cell>
|
||||
<van-cell title="发放时间"
|
||||
:value="formatTimeRange(projectInfo.provideTimeStart, projectInfo.provideTimeEnd)"></van-cell>
|
||||
<van-cell title="发放地点" :value="projectInfo.provideAddress"></van-cell>
|
||||
<van-cell title="发放部门" :value="projectInfo.provideAddress"></van-cell>
|
||||
</div>
|
||||
</van-collapse-item>
|
||||
<!-- <van-cell title="发放方式" :value="getProvideModeName(projectInfo.provideMode)"></van-cell>-->
|
||||
@@ -719,7 +719,7 @@ layout("/layouts/platform_h5.html"){
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.mobile"
|
||||
label="联系电话"
|
||||
label="手机号"
|
||||
placeholder="请输入手机号码"
|
||||
:error="mobileError"
|
||||
@focus="mobileError = false"
|
||||
|
||||
Reference in New Issue
Block a user