|
@@ -2,228 +2,68 @@
|
|
|
<div class="addVisit">
|
|
|
<m-header v-if="statusList.headerStatus" :name="name" />
|
|
|
<van-cell-group>
|
|
|
- <van-field
|
|
|
- label="回访老师"
|
|
|
- v-model="teacherName"
|
|
|
- readonly
|
|
|
- input-align="right"
|
|
|
- placeholder="请选择"
|
|
|
- />
|
|
|
+ <van-field label="回访老师" v-model="teacherName" readonly input-align="right" placeholder="请选择" />
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
- <van-field
|
|
|
- label="学员姓名"
|
|
|
- @click="onCheckStudent"
|
|
|
- v-model="studentName"
|
|
|
- readonly
|
|
|
- input-align="right"
|
|
|
- :is-link="id || userId || studentId ? false : true"
|
|
|
- placeholder="请选择"
|
|
|
- >
|
|
|
+ <van-field label="学员姓名" @click="onCheckStudent" v-model="studentName" readonly input-align="right" :is-link="id || userId || studentId ? false : true" placeholder="请选择">
|
|
|
<template #right-icon>
|
|
|
- <a
|
|
|
- v-if="studentPhone"
|
|
|
- @click.stop="() => {}"
|
|
|
- class="phone_section"
|
|
|
- :href="'tel:' + studentPhone"
|
|
|
- ><img
|
|
|
- src="../../assets/images/icon_phone.png"
|
|
|
- class="iconPhone"
|
|
|
- alt=""
|
|
|
- /></a>
|
|
|
+ <a v-if="studentPhone" @click.stop="() => {}" class="phone_section" :href="'tel:' + studentPhone"><img src="../../assets/images/icon_phone.png" class="iconPhone" alt="" /></a>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
- <van-field
|
|
|
- label="回访类型"
|
|
|
- @click="onChange('type')"
|
|
|
- v-model="form.type"
|
|
|
- readonly
|
|
|
- input-align="right"
|
|
|
- :is-link="id || userId ? false : true"
|
|
|
- placeholder="请选择"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- label="回访目的"
|
|
|
- @click="onChange('purpose')"
|
|
|
- v-model="form.purpose"
|
|
|
- readonly
|
|
|
- input-align="right"
|
|
|
- :is-link="id || userId ? false : true"
|
|
|
- placeholder="请选择"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-if="form.type == '小课回访'"
|
|
|
- label="家长反馈"
|
|
|
- @click="onChange('feedbackType')"
|
|
|
- v-model="form.feedbackTypeName"
|
|
|
- readonly
|
|
|
- input-align="right"
|
|
|
- :is-link="id ? false : true"
|
|
|
- placeholder="请选择"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-if="
|
|
|
- form.type == '小课回访' &&
|
|
|
- (form.feedbackType == 'THINKING' || form.feedbackType == 'LOST')
|
|
|
- "
|
|
|
- label="反馈详情"
|
|
|
- @click="onChange('feedbackTypeDesc')"
|
|
|
- v-model="form.feedbackTypeDescName"
|
|
|
- readonly
|
|
|
- input-align="right"
|
|
|
- :is-link="id ? false : true"
|
|
|
- placeholder="请选择"
|
|
|
- />
|
|
|
- <van-field
|
|
|
- label="问题状态"
|
|
|
- @click="onChange('probStatus')"
|
|
|
- v-model="form.probStatusName"
|
|
|
- readonly
|
|
|
- input-align="right"
|
|
|
- :is-link="id ? false : true"
|
|
|
- placeholder="请选择"
|
|
|
- />
|
|
|
+ <van-field label="回访类型" @click="onChange('type')" v-model="form.type" readonly input-align="right" :is-link="id || userId ? false : true" placeholder="请选择" />
|
|
|
+ <van-field label="回访目的" @click="onChange('purpose')" v-model="form.purpose" readonly input-align="right" :is-link="id || userId ? false : true" placeholder="请选择" />
|
|
|
+ <van-field v-if="form.type == '小课回访'" label="家长反馈" @click="onChange('feedbackType')" v-model="form.feedbackTypeName" readonly input-align="right" :is-link="id ? false : true" placeholder="请选择" />
|
|
|
+ <van-field v-if="form.type == '小课回访' && (form.feedbackType == 'THINKING' || form.feedbackType == 'LOST')" label="反馈详情" @click="onChange('feedbackTypeDesc')" v-model="form.feedbackTypeDescName" readonly input-align="right" :is-link="id ? false : true" placeholder="请选择" />
|
|
|
+ <van-field label="问题状态" @click="onChange('probStatus')" v-model="form.probStatusName" readonly input-align="right" :is-link="id ? false : true" placeholder="请选择" />
|
|
|
</van-cell-group>
|
|
|
|
|
|
<van-cell-group>
|
|
|
<div class="dot"></div>
|
|
|
- <van-field
|
|
|
- label="当前学生情况"
|
|
|
- class="textarea"
|
|
|
- :readonly="id ? true : false"
|
|
|
- v-model="form.overview"
|
|
|
- rows="2"
|
|
|
- autosize
|
|
|
- type="textarea"
|
|
|
- maxlength="50"
|
|
|
- placeholder="请输入留言"
|
|
|
- :show-word-limit="id ? false : true"
|
|
|
- />
|
|
|
+ <van-field label="当前学生情况" class="textarea" :readonly="id ? true : false" v-model="form.overview" rows="2" autosize type="textarea" maxlength="50" placeholder="请输入留言" :show-word-limit="id ? false : true" />
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<div class="dot"></div>
|
|
|
- <van-field
|
|
|
- label="沟通后家长反馈"
|
|
|
- class="textarea"
|
|
|
- :readonly="id ? true : false"
|
|
|
- v-model="form.feedback"
|
|
|
- rows="2"
|
|
|
- autosize
|
|
|
- type="textarea"
|
|
|
- maxlength="50"
|
|
|
- placeholder="请输入留言"
|
|
|
- :show-word-limit="id ? false : true"
|
|
|
- />
|
|
|
+ <van-field label="沟通后家长反馈" class="textarea" :readonly="id ? true : false" v-model="form.feedback" rows="2" autosize type="textarea" maxlength="50" placeholder="请输入留言" :show-word-limit="id ? false : true" />
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
- <van-field
|
|
|
- label="回访时间"
|
|
|
- class="visiTimer"
|
|
|
- v-model="form.visitTime"
|
|
|
- readonly
|
|
|
- @click="onEnListShow"
|
|
|
- input-align="right"
|
|
|
- :is-link="id ? false : true"
|
|
|
- placeholder="请选择"
|
|
|
- />
|
|
|
+ <van-field label="回访时间" class="visiTimer" v-model="form.visitTime" readonly @click="onEnListShow" input-align="right" :is-link="id ? false : true" placeholder="请选择" />
|
|
|
</van-cell-group>
|
|
|
<van-cell-group v-if="(id && uploader[0] && uploader[0].url) || !id">
|
|
|
<div class="visiWrap">
|
|
|
<p>回访图片</p>
|
|
|
<!-- :before-delete="beforDelete" -->
|
|
|
- <van-uploader
|
|
|
- v-model="uploader"
|
|
|
- :before-read="beforeRead"
|
|
|
- :after-read="afterRead"
|
|
|
- :disabled="id ? true : false"
|
|
|
- :deletable="!id ? true : false"
|
|
|
- accept="image/*"
|
|
|
- multiple
|
|
|
- :max-count="5"
|
|
|
- />
|
|
|
+ <van-uploader v-model="uploader" :before-read="beforeRead" :after-read="afterRead" :disabled="id ? true : false" :deletable="!id ? true : false" accept="image/*" multiple :max-count="5" />
|
|
|
<p class="submit" v-if="!id">上传文件大小不能超过5MB且最多上传五张</p>
|
|
|
</div>
|
|
|
</van-cell-group>
|
|
|
|
|
|
<div class="button-group" v-if="!id">
|
|
|
- <van-button type="primary" @click="onSubmit" round size="large"
|
|
|
- >确认</van-button
|
|
|
- >
|
|
|
+ <van-button type="primary" @click="onSubmit" round size="large">确认</van-button>
|
|
|
</div>
|
|
|
|
|
|
- <van-action-sheet
|
|
|
- v-model="visit.status"
|
|
|
- :actions="visit.data"
|
|
|
- cancel-text="取消"
|
|
|
- @cancel="visit.status = false"
|
|
|
- @select="onModeSelect"
|
|
|
- />
|
|
|
+ <van-action-sheet v-model="visit.status" :actions="visit.data" cancel-text="取消" @cancel="visit.status = false" @select="onModeSelect" />
|
|
|
|
|
|
<van-popup v-model="dataForm.status" position="bottom">
|
|
|
- <van-datetime-picker
|
|
|
- v-model="dataForm.currentDate"
|
|
|
- type="date"
|
|
|
- :min-date="dataForm.minDate"
|
|
|
- :max-date="dataForm.maxDate"
|
|
|
- :formatter="formatter"
|
|
|
- @cancel="dataForm.status = false"
|
|
|
- @confirm="onCurrentConfirm"
|
|
|
- />
|
|
|
+ <van-datetime-picker v-model="dataForm.currentDate" type="date" :min-date="dataForm.minDate" :max-date="dataForm.maxDate" :formatter="formatter" @cancel="dataForm.status = false" @confirm="onCurrentConfirm" />
|
|
|
</van-popup>
|
|
|
|
|
|
<!-- 选择上课学生 -->
|
|
|
- <van-popup
|
|
|
- v-model="statusList.studentStatus"
|
|
|
- :lock-scroll="true"
|
|
|
- position="bottom"
|
|
|
- :style="{ height: '180%' }"
|
|
|
- >
|
|
|
+ <van-popup v-model="statusList.studentStatus" :lock-scroll="true" position="bottom" :style="{ height: '180%' }">
|
|
|
<van-sticky>
|
|
|
- <van-search
|
|
|
- show-action
|
|
|
- shape="round"
|
|
|
- :left-icon="searchIcon"
|
|
|
- @search="onSearch"
|
|
|
- v-model="params.search"
|
|
|
- placeholder="请输入学生名或手机号"
|
|
|
- >
|
|
|
+ <van-search show-action shape="round" :left-icon="searchIcon" @search="onSearch" v-model="params.search" placeholder="请输入学生名或手机号">
|
|
|
<template #action>
|
|
|
<div @click="onSearch">搜索</div>
|
|
|
</template>
|
|
|
</van-search>
|
|
|
</van-sticky>
|
|
|
<div class="paddingB80">
|
|
|
- <van-list
|
|
|
- v-model="loading"
|
|
|
- class="studentContainer"
|
|
|
- v-if="dataShow"
|
|
|
- key="data"
|
|
|
- :finished="finished"
|
|
|
- finished-text=""
|
|
|
- @load="getStudent"
|
|
|
- >
|
|
|
+ <van-list v-model="loading" class="studentContainer" v-if="dataShow" key="data" :finished="finished" finished-text="" @load="getStudent">
|
|
|
<van-radio-group v-model="radioSelect">
|
|
|
<van-cell-group>
|
|
|
- <van-cell
|
|
|
- v-for="(item, index) in dataList"
|
|
|
- :key="index"
|
|
|
- @click="onCheckboxSelect(item)"
|
|
|
- class="input-cell"
|
|
|
- :center="true"
|
|
|
- >
|
|
|
+ <van-cell v-for="(item, index) in dataList" :key="index" @click="onCheckboxSelect(item)" class="input-cell" :center="true">
|
|
|
<template slot="icon">
|
|
|
- <img
|
|
|
- class="logo"
|
|
|
- v-if="item.avatar"
|
|
|
- :src="item.avatar"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <img
|
|
|
- class="logo"
|
|
|
- v-else
|
|
|
- src="@/assets/images/icon_student.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
+ <img class="logo" v-if="item.avatar" :src="item.avatar" alt="" />
|
|
|
+ <img class="logo" v-else src="@/assets/images/icon_student.png" alt="" />
|
|
|
</template>
|
|
|
<template slot="title">
|
|
|
<div class="studentName">
|
|
@@ -254,12 +94,7 @@ import MHeader from "@/components/MHeader";
|
|
|
import { browser } from "@/common/common";
|
|
|
import MEmpty from "@/components/MEmpty";
|
|
|
import dayjs from "dayjs";
|
|
|
-import {
|
|
|
- queryStudentsWithTeacher,
|
|
|
- visitAdd,
|
|
|
- visitGetInfo,
|
|
|
- queryUserById,
|
|
|
-} from "@/api/teacher";
|
|
|
+import { queryStudentsWithTeacher, visitAdd, visitGetInfo, queryUserById } from "@/api/teacher";
|
|
|
import { queryUserInfo } from "@/api/app";
|
|
|
import { policy } from "@/views/massMessage/api";
|
|
|
import setLoading from "@/utils/loading";
|
|
@@ -293,13 +128,7 @@ export default {
|
|
|
headerStatus: true, // 头部是否展示
|
|
|
studentStatus: false, // 上课学生状态
|
|
|
},
|
|
|
- typeList: [
|
|
|
- { name: "课程推荐" },
|
|
|
- { name: "常规回访" },
|
|
|
- { name: "小课回访" },
|
|
|
- { name: "云教练" },
|
|
|
- { name: "其它" },
|
|
|
- ],
|
|
|
+ typeList: [{ name: "课程推荐" }, { name: "常规回访" }, { name: "小课回访" }, { name: "云教练" }, { name: "其它" }],
|
|
|
visit: {
|
|
|
status: false,
|
|
|
type: null,
|
|
@@ -312,17 +141,10 @@ export default {
|
|
|
teacherId: null,
|
|
|
studentId: query.userId || query.studentId || query.beforeId || null,
|
|
|
type: query.userId ? "云教练" : query.beforeId ? "常规回访" : null,
|
|
|
- purpose: query.userId
|
|
|
- ? "体验回访"
|
|
|
- : query.beforeId
|
|
|
- ? "教学内容未达标"
|
|
|
- : null,
|
|
|
+ purpose: query.userId ? "体验回访" : query.beforeId ? "教学内容未达标" : null,
|
|
|
overview: "",
|
|
|
feedback: "",
|
|
|
- visitTime:
|
|
|
- query.userId || query.id || query.beforeId
|
|
|
- ? dayjs().format("YYYY年MM月DD日")
|
|
|
- : null,
|
|
|
+ visitTime: query.userId || query.id || query.beforeId ? dayjs().format("YYYY年MM月DD日") : null,
|
|
|
visiterType: "TEACHER",
|
|
|
feedbackTypeDesc: "",
|
|
|
feedbackType: "",
|
|
@@ -342,8 +164,8 @@ export default {
|
|
|
clickStatus: false,
|
|
|
dataList: [],
|
|
|
searchIcon: require("@/assets/images/search.png"),
|
|
|
- ossUploadUrl: "https://ks3-cn-beijing.ksyuncs.com/daya",
|
|
|
- preUploadUrl: "https://daya.ks3-cn-beijing.ksyuncs.com",
|
|
|
+ // ossUploadUrl: "https://ks3-cn-beijing.ksyuncs.com/daya",
|
|
|
+ ossUploadUrl: "https://daya.ks3-cn-beijing.ksyuncs.com",
|
|
|
dataObj: {
|
|
|
policy: "",
|
|
|
signature: "",
|
|
@@ -553,9 +375,7 @@ export default {
|
|
|
if (browser().android) {
|
|
|
DAYA.postMessage(JSON.stringify({ api: "back" }));
|
|
|
} else if (browser().iPhone) {
|
|
|
- window.webkit.messageHandlers.DAYA.postMessage(
|
|
|
- JSON.stringify({ api: "back" })
|
|
|
- );
|
|
|
+ window.webkit.messageHandlers.DAYA.postMessage(JSON.stringify({ api: "back" }));
|
|
|
}
|
|
|
},
|
|
|
onCheckStudent() {
|
|
@@ -581,18 +401,9 @@ export default {
|
|
|
} else if (form.type == "课程推荐") {
|
|
|
visit.data = [{ name: "新课推荐" }, { name: "续费提醒" }];
|
|
|
} else if (form.type == "常规回访") {
|
|
|
- visit.data = [
|
|
|
- { name: "课后及作业回访" },
|
|
|
- { name: "练习及乐团表现" },
|
|
|
- { name: "考勤申诉" },
|
|
|
- { name: "异常请假回访" },
|
|
|
- ];
|
|
|
+ visit.data = [{ name: "课后及作业回访" }, { name: "练习及乐团表现" }, { name: "考勤申诉" }, { name: "异常请假回访" }];
|
|
|
} else if (form.type == "小课回访") {
|
|
|
- visit.data = [
|
|
|
- { name: "VIP课回访" },
|
|
|
- { name: "乐理课回访" },
|
|
|
- { name: "网管课回访" },
|
|
|
- ];
|
|
|
+ visit.data = [{ name: "VIP课回访" }, { name: "乐理课回访" }, { name: "网管课回访" }];
|
|
|
} else if (form.type == "云教练") {
|
|
|
visit.data = [{ name: "体验回访" }];
|
|
|
} else {
|
|
@@ -766,7 +577,7 @@ export default {
|
|
|
url: this.ossUploadUrl,
|
|
|
data: formData,
|
|
|
});
|
|
|
- const uploadUrl = this.preUploadUrl + "/" + key;
|
|
|
+ const uploadUrl = this.ossUploadUrl + "/" + key;
|
|
|
file.url = uploadUrl;
|
|
|
file.status = "done";
|
|
|
} catch (e) {
|