ResearchDeduct.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <template>
  2. <div style="margin-top: 20px" class="add-activity-deduct-page">
  3. <el-checkbox v-model="isCanAppointmentMinutes">
  4. 可预约纪要
  5. <el-tooltip placement="top-start" content="会后提供纪要的活动,请勾选此选项,小程序内会显示【预约纪要】按钮">
  6. <i class="el-icon-info" />
  7. </el-tooltip>
  8. </el-checkbox>
  9. <el-checkbox v-if="isResearch && [1, 3, 5, 8].includes(cactivityType)" v-model="isShowHz"> 同时在弘则活动页展示 </el-checkbox>
  10. <el-checkbox v-if="cactivityType == 3" v-model="isExternalLabel"> 外部资源 </el-checkbox>
  11. <el-checkbox v-if="cactivityType == 3" v-model="isZoom"> zoom办会(请用zoom模板建会) </el-checkbox>
  12. <template v-if="cactivityType == 7 || cactivityType == 2">
  13. <el-checkbox v-model="isYidongConduct">
  14. 易董办会
  15. <el-tooltip placement="top-start" content="在易董举办的活动,请勾选此选项">
  16. <i class="el-icon-info" />
  17. </el-tooltip>
  18. </el-checkbox>
  19. <el-checkbox v-if="isYidongConduct" v-model="isCanOutboundCall">
  20. 可提供外呼
  21. <el-tooltip placement="top-start" content="用户可在小程序中选择预约外呼参会">
  22. <i class="el-icon-info" />
  23. </el-tooltip>
  24. </el-checkbox>
  25. <el-checkbox v-if="isYidongConduct && cactivityType == 2" v-model="isBClass"> B类非公开会议 </el-checkbox>
  26. </template>
  27. <template v-if="optionFormregion.includes('研选')">
  28. <el-checkbox v-model="isDeduct" style="margin-right: 20px"> 研选扣点 </el-checkbox>
  29. <el-select clearable @change="ObjectChangeHandler" v-model="PointsSet.PointsObject" placeholder="请选择扣点对象" v-if="isDeduct" style="width: 160px">
  30. <el-option v-for="item in deductUser" :key="item.value" :label="item.label" :value="item.value"> </el-option>
  31. </el-select>
  32. <template v-if="isDeduct && PointsSet.PointsObject">
  33. <el-select clearable v-model="PointsSet.CompanyPointsNum" placeholder="办会人扣点点数" v-if="PointsSet.PointsObject == 3" style="width: 160px">
  34. <el-option v-for="item in dataPointsSet" :key="item.PointsNum" :label="item.PointsNum" :value="item.PointsNum"> </el-option>
  35. </el-select>
  36. <el-select clearable v-model="PointsSet.UserPointsNum" placeholder="请选择扣点点数" style="width: 160px" v-if="PointsSet.PointsObject == 1">
  37. <el-option v-for="item in dataPointsSet" :key="item.PointsNum" :label="item.PointsNum" :value="item.PointsNum"> </el-option>
  38. </el-select>
  39. <el-select clearable v-model="PointsSet.CompanyPointsNum" placeholder="请选择扣点点数" style="width: 160px" v-if="PointsSet.PointsObject == 2">
  40. <el-option v-for="item in dataPointsSet" :key="item.PointsNum" :label="item.PointsNum" :value="item.PointsNum"> </el-option>
  41. </el-select>
  42. <el-autocomplete
  43. :fetch-suggestions="querySearchAsync"
  44. clearable
  45. v-model="institutionName"
  46. placeholder=" 请输入办会机构名称"
  47. v-if="PointsSet.PointsObject != 1"
  48. style="width: 300px"
  49. @select="companyChangeHandler"
  50. @clear="companyClearHandler"
  51. ></el-autocomplete>
  52. <el-select clearable v-model="PointsSet.UserPointsNum" placeholder="参会人扣点点数" v-if="PointsSet.PointsObject == 3" style="width: 160px; margin-left: 20px">
  53. <el-option v-for="item in dataPointsSet" :key="item.PointsNum" :label="item.PointsNum" :value="item.PointsNum"> </el-option>
  54. </el-select>
  55. <el-select clearable v-model="PointsSet.PointsType" placeholder="请选择扣点形式" v-if="PointsSet.PointsObject != 2" style="width: 160px">
  56. <el-option v-for="item in pointsTypeList" :key="item.val" :label="item.label" :value="item.val"> </el-option>
  57. </el-select>
  58. </template>
  59. <span style="margin: 0 20px" v-if="isDeduct">
  60. 报名截止时间:
  61. <el-date-picker clearable v-model="SiginupDeadline" type="datetime" placeholder="选择日期时间" value-format="yyyy-MM-dd HH:mm:ss"> </el-date-picker>
  62. </span>
  63. <span style="margin: 0 20px 0 0" v-if="PointsSet.PointsType == 1">
  64. 取消报名截止时间:
  65. <el-select clearable v-model="PointsSet.CancelDeadlineType" placeholder="请选择截止时间" style="width: 200px">
  66. <el-option v-for="item in dataDeadlineSet" :key="item.Id" :label="item.Name" :value="item.Id"> </el-option>
  67. </el-select>
  68. </span>
  69. <el-checkbox v-model="provideEmail"> 需提供邮箱 </el-checkbox>
  70. </template>
  71. </div>
  72. </template>
  73. <script>
  74. import { raiInterface } from "@/api/api.js";
  75. import { DeductUser, DeductForm } from "./addOfEditData";
  76. export default {
  77. name: "",
  78. components: {},
  79. props: {
  80. cactivityType: {
  81. required: true,
  82. default: "",
  83. },
  84. optionFormregion: {
  85. required: true,
  86. type: String,
  87. default: "",
  88. },
  89. isResearch: {
  90. type: Boolean,
  91. default: false,
  92. },
  93. },
  94. data() {
  95. return {
  96. isCanAppointmentMinutes: false, // 可预约纪要
  97. isYidongConduct: false, // 易懂办会
  98. isCanOutboundCall: false, // 可提供外呼
  99. isExternalLabel: false, //外部资源
  100. isZoom:false, //是否是Zoom模版
  101. institutionName: "", //机构名称
  102. isDeduct: false, // 研选扣点
  103. isBClass: false, // B类非公开
  104. provideEmail: "", //提供邮箱
  105. SiginupDeadline: "", //
  106. nameCompany: [],
  107. dataPointsSet: [],
  108. PointsSet: {
  109. PointsObject: "", //扣点对象
  110. CompanyId: 0, //公司ID
  111. CompanyName: "", //公司名称
  112. UserPointsNum: "", //参会人扣点数量
  113. PointsType: "", //扣点形式,1:报名即扣点,2:到会即扣点
  114. CompanyPointsNum: "", //办会人扣点数量
  115. CancelDeadlineType: "", //截至报名时间
  116. },
  117. dataDeadlineSet: [],
  118. isShowHz: false,
  119. };
  120. },
  121. computed: {
  122. deductUser() {
  123. return DeductUser;
  124. },
  125. pointsTypeList() {
  126. return DeductForm;
  127. },
  128. },
  129. watch: {
  130. cactivityType: {
  131. handler(newval) {
  132. if (this.$route.query.id) return;
  133. if (newval == 1) {
  134. this.isCanAppointmentMinutes = true;
  135. } else {
  136. this.isCanAppointmentMinutes = false;
  137. }
  138. },
  139. },
  140. },
  141. created() {
  142. let time = new Date().toISOString().substr(0, 10);
  143. this.SiginupDeadline = time + " 15:30:00";
  144. },
  145. mounted() {
  146. this.getActivityPointsSet();
  147. this.getActivityDeadlineSet();
  148. },
  149. methods: {
  150. // 获取扣点点数的
  151. async getActivityPointsSet() {
  152. const res = await raiInterface.activityPointsSet();
  153. if (res.Ret === 200) {
  154. this.dataPointsSet = res.Data.List;
  155. }
  156. },
  157. // 获取截取时间的
  158. async getActivityDeadlineSet() {
  159. const res = await raiInterface.activityDeadlineSet();
  160. if (res.Ret === 200) {
  161. this.dataDeadlineSet = res.Data;
  162. }
  163. },
  164. // 远程搜索公司
  165. async querySearchAsync(query, cb) {
  166. cb([]);
  167. if (query) {
  168. const res = await raiInterface.activityCompanySearch({
  169. KeyWord: query,
  170. });
  171. if (res.Ret === 200) {
  172. let arr = res.Data.List.map((_) => {
  173. return {
  174. ..._,
  175. value: `${_.CompanyName} -- ${_.RealName}`,
  176. };
  177. });
  178. this.nameCompany = arr;
  179. cb(arr);
  180. }
  181. } else {
  182. cb([]);
  183. }
  184. },
  185. // 选择后的事件
  186. companyChangeHandler() {
  187. let itemData = this.nameCompany.find((item) => this.institutionName === item.value);
  188. this.PointsSet.CompanyId = itemData.CompanyId;
  189. this.PointsSet.CompanyName = itemData.value;
  190. },
  191. // 点击清楚
  192. companyClearHandler() {
  193. this.PointsSet.CompanyId = 0;
  194. this.PointsSet.CompanyName = "";
  195. },
  196. // 数据的初始
  197. ObjectChangeHandler() {
  198. this.PointsSet.CompanyId = 0; //公司ID
  199. this.PointsSet.CompanyName = ""; //公司名称
  200. this.PointsSet.UserPointsNum = ""; //参会人扣点数量
  201. this.PointsSet.PointsType = ""; //扣点形式,1=报名即扣点,2=到会即扣点
  202. this.PointsSet.CompanyPointsNum = ""; //办会人扣点数量
  203. this.PointsSet.CancelDeadlineType = ""; //办会人扣点数量
  204. this.institutionName = ""; //
  205. },
  206. },
  207. };
  208. </script>
  209. <style scoped lang="scss">
  210. .add-activity-deduct-page {
  211. .el-select,
  212. .el-input {
  213. margin-right: 25px;
  214. margin-bottom: 20px;
  215. }
  216. }
  217. </style>