add.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. "use strict";
  2. const common_vendor = require("../../common/vendor.js");
  3. if (!Array) {
  4. const _easycom_up_input2 = common_vendor.resolveComponent("up-input");
  5. const _easycom_up_form_item2 = common_vendor.resolveComponent("up-form-item");
  6. const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
  7. const _easycom_up_textarea2 = common_vendor.resolveComponent("up-textarea");
  8. const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio");
  9. const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group");
  10. const _easycom_up_form2 = common_vendor.resolveComponent("up-form");
  11. const _easycom_up_datetime_picker2 = common_vendor.resolveComponent("up-datetime-picker");
  12. (_easycom_up_input2 + _easycom_up_form_item2 + _easycom_up_icon2 + _easycom_up_textarea2 + _easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_form2 + _easycom_up_datetime_picker2)();
  13. }
  14. const _easycom_up_input = () => "../../node-modules/uview-plus/components/u-input/u-input.js";
  15. const _easycom_up_form_item = () => "../../node-modules/uview-plus/components/u-form-item/u-form-item.js";
  16. const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js";
  17. const _easycom_up_textarea = () => "../../node-modules/uview-plus/components/u-textarea/u-textarea.js";
  18. const _easycom_up_radio = () => "../../node-modules/uview-plus/components/u-radio/u-radio.js";
  19. const _easycom_up_radio_group = () => "../../node-modules/uview-plus/components/u-radio-group/u-radio-group.js";
  20. const _easycom_up_form = () => "../../node-modules/uview-plus/components/u-form/u-form.js";
  21. const _easycom_up_datetime_picker = () => "../../node-modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js";
  22. if (!Math) {
  23. (_easycom_up_input + _easycom_up_form_item + _easycom_up_icon + _easycom_up_textarea + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_form + _easycom_up_datetime_picker)();
  24. }
  25. const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
  26. __name: "add",
  27. setup(__props) {
  28. const $api = common_vendor.inject("$api");
  29. const user = common_vendor.computed(() => {
  30. return common_vendor.index.getStorageSync("user");
  31. });
  32. const id = common_vendor.ref("");
  33. const form = common_vendor.ref({ name: "", subject: "", grade: "", type: "", money: "", start_time: "", end_time: "", is_show: "" });
  34. const rules = common_vendor.ref({
  35. name: [{ required: true, message: "请输入姓名", trigger: ["blur", "change"] }],
  36. subject: [{ required: true, message: "请选择学科", trigger: ["blur", "change"] }],
  37. grade: [{ required: true, message: "请选择年级", trigger: ["blur", "change"] }],
  38. type: [{ required: true, message: "请选择类型", trigger: ["blur", "change"] }],
  39. money: [{ required: true, message: "请输入金额", trigger: ["blur", "change"] }],
  40. start_time: [{ required: true, message: "请选择开始时间", trigger: ["blur", "change"] }],
  41. end_time: [
  42. { required: true, message: "请选择结束时间", trigger: ["blur", "change"] },
  43. { validator: (rule, value, callback) => {
  44. return common_vendor.hooks(form.value.start_time).isBefore(form.value.end_time);
  45. }, message: "开始时间必须大于结束时间!" }
  46. ],
  47. is_show: [{ required: true, message: "请选择是否公开", trigger: ["blur", "change"] }]
  48. });
  49. const uFormRef = common_vendor.ref(null);
  50. const subjectList = common_vendor.ref([]);
  51. const gradeList = common_vendor.ref([]);
  52. const showList = common_vendor.ref([]);
  53. const typeList = common_vendor.ref([]);
  54. const showStart = common_vendor.ref(false);
  55. const showEnd = common_vendor.ref(false);
  56. common_vendor.onLoad(async (options) => {
  57. id.value = options && options.id;
  58. await searchOther();
  59. await search();
  60. });
  61. common_vendor.onReady(() => {
  62. uFormRef.value.setRules(rules.value);
  63. });
  64. const searchOther = async () => {
  65. let res;
  66. res = await $api(`dictData`, "GET", { code: "subject", is_use: "0" });
  67. if (res.errcode === 0)
  68. subjectList.value = res.data;
  69. res = await $api(`dictData`, "GET", { code: "grade", is_use: "0" });
  70. if (res.errcode === 0)
  71. gradeList.value = res.data;
  72. res = await $api(`dictData`, "GET", { code: "courseType", is_use: "0" });
  73. if (res.errcode === 0)
  74. typeList.value = res.data;
  75. res = await $api(`dictData`, "GET", { code: "show", is_use: "0" });
  76. if (res.errcode === 0)
  77. showList.value = res.data;
  78. };
  79. const search = async () => {
  80. if (id.value) {
  81. const res = await $api(`course/${id.value}`, "GET", {});
  82. if (res.errcode === 0) {
  83. if (res.data.subject) {
  84. const data = subjectList.value.find((i) => i.value === res.data.subject);
  85. if (data)
  86. res.data.subject_name = data.label;
  87. }
  88. if (res.data.grade) {
  89. const data = gradeList.value.find((i) => i.value === res.data.grade);
  90. if (data)
  91. res.data.grade_name = data.label;
  92. }
  93. if (res.data.type) {
  94. const data = typeList.value.find((i) => i.value === res.data.type);
  95. if (data)
  96. res.data.type_name = data.label;
  97. }
  98. form.value = res.data;
  99. } else {
  100. common_vendor.index.showToast({
  101. title: res.errmsg || "",
  102. icon: "error"
  103. });
  104. }
  105. }
  106. };
  107. const typeChange = (e) => {
  108. const data = typeList.value[e.detail.value];
  109. if (data) {
  110. form.value.type = data.value;
  111. form.value.type_name = data.label;
  112. }
  113. };
  114. const subjectChange = (e) => {
  115. const data = subjectList.value[e.detail.value];
  116. if (data) {
  117. form.value.subject = data.value;
  118. form.value.subject_name = data.label;
  119. }
  120. };
  121. const gradeChange = (e) => {
  122. const data = gradeList.value[e.detail.value];
  123. if (data) {
  124. form.value.grade = data.value;
  125. form.value.grade_name = data.label;
  126. }
  127. };
  128. const StartClose = async () => {
  129. showStart.value = false;
  130. uFormRef.value.validateField("start_time");
  131. };
  132. const StartConfirm = async (e) => {
  133. showStart.value = false;
  134. form.value.start_time = common_vendor.index.$u.timeFormat(e.value, "yyyy-mm-dd hh:MM");
  135. uFormRef.value.validateField("start_time");
  136. };
  137. const EndClose = async () => {
  138. showEnd.value = false;
  139. uFormRef.value.validateField("end_time");
  140. };
  141. const EndConfirm = async (e) => {
  142. showEnd.value = false;
  143. form.value.end_time = common_vendor.index.$u.timeFormat(e.value, "yyyy-mm-dd hh:MM");
  144. uFormRef.value.validateField("end_time");
  145. };
  146. const submit = async () => {
  147. uFormRef.value.validate().then(async (valid) => {
  148. if (valid) {
  149. const data = JSON.parse(JSON.stringify(form.value));
  150. data.teacher = user.value._id;
  151. delete data.subject_name;
  152. delete data.grade_name;
  153. delete data.type_name;
  154. let res;
  155. if (id.value)
  156. res = await $api(`course/${id.value}`, "POST", data);
  157. else
  158. res = await $api(`course`, "POST", data);
  159. if (res.errcode == "0") {
  160. common_vendor.index.showToast({
  161. title: "维护信息成功",
  162. icon: "none"
  163. });
  164. common_vendor.index.navigateBack({
  165. delta: 1
  166. });
  167. } else {
  168. common_vendor.index.showToast({
  169. title: res.errmsg,
  170. icon: "none"
  171. });
  172. }
  173. } else {
  174. common_vendor.index.$u.toast("校验失败");
  175. }
  176. }).catch(() => {
  177. common_vendor.index.$u.toast("校验失败");
  178. });
  179. };
  180. const hideKeyboard = () => {
  181. common_vendor.index.hideKeyboard();
  182. };
  183. return (_ctx, _cache) => {
  184. return {
  185. a: common_vendor.o(($event) => form.value.name = $event),
  186. b: common_vendor.p({
  187. placeholder: "请输入课程名称",
  188. modelValue: form.value.name
  189. }),
  190. c: common_vendor.p({
  191. label: "课程名称",
  192. labelWidth: "80",
  193. prop: "name",
  194. required: true
  195. }),
  196. d: common_vendor.t(form.value.subject_name || "请选择学科"),
  197. e: common_vendor.o(subjectChange),
  198. f: subjectList.value,
  199. g: common_vendor.p({
  200. label: "学科",
  201. prop: "subject",
  202. required: true
  203. }),
  204. h: common_vendor.t(form.value.grade_name || "请选择年级"),
  205. i: common_vendor.o(gradeChange),
  206. j: gradeList.value,
  207. k: common_vendor.p({
  208. label: "年级",
  209. prop: "grade",
  210. required: true
  211. }),
  212. l: common_vendor.t(form.value.type_name || "请选择年级"),
  213. m: common_vendor.o(typeChange),
  214. n: typeList.value,
  215. o: common_vendor.p({
  216. label: "类型",
  217. prop: "type",
  218. required: true
  219. }),
  220. p: common_vendor.o(($event) => form.value.money = $event),
  221. q: common_vendor.p({
  222. placeholder: "请输入金额(元)",
  223. modelValue: form.value.money
  224. }),
  225. r: common_vendor.p({
  226. label: "金额(元)",
  227. prop: "money",
  228. labelWidth: "80",
  229. required: true
  230. }),
  231. s: common_vendor.o(($event) => form.value.start_time = $event),
  232. t: common_vendor.p({
  233. disabled: true,
  234. disabledColor: "#ffffff",
  235. placeholder: "请选择开始时间",
  236. modelValue: form.value.start_time
  237. }),
  238. v: common_vendor.p({
  239. name: "arrow-right"
  240. }),
  241. w: common_vendor.o(($event) => {
  242. showStart.value = true;
  243. hideKeyboard();
  244. }),
  245. x: common_vendor.p({
  246. label: "开始时间",
  247. labelWidth: "80",
  248. prop: "start_time",
  249. required: true
  250. }),
  251. y: common_vendor.o(($event) => form.value.end_time = $event),
  252. z: common_vendor.p({
  253. disabled: true,
  254. disabledColor: "#ffffff",
  255. placeholder: "请选择结束时间",
  256. modelValue: form.value.end_time
  257. }),
  258. A: common_vendor.p({
  259. name: "arrow-right"
  260. }),
  261. B: common_vendor.o(($event) => {
  262. showEnd.value = true;
  263. hideKeyboard();
  264. }),
  265. C: common_vendor.p({
  266. label: "结束时间",
  267. labelWidth: "80",
  268. prop: "end_time",
  269. required: true
  270. }),
  271. D: common_vendor.o(($event) => form.value.brief = $event),
  272. E: common_vendor.p({
  273. placeholder: "请输入简介",
  274. count: true,
  275. modelValue: form.value.brief
  276. }),
  277. F: common_vendor.p({
  278. label: "简介",
  279. prop: "brief"
  280. }),
  281. G: common_vendor.f(showList.value, (item, index, i0) => {
  282. return {
  283. a: index,
  284. b: "abcf3dc4-18-" + i0 + ",abcf3dc4-17",
  285. c: common_vendor.p({
  286. customStyle: {
  287. marginRight: "16px"
  288. },
  289. label: item.label,
  290. name: item.value
  291. })
  292. };
  293. }),
  294. H: common_vendor.o(($event) => form.value.is_show = $event),
  295. I: common_vendor.p({
  296. placement: "row",
  297. modelValue: form.value.is_show
  298. }),
  299. J: common_vendor.p({
  300. label: "是否公开",
  301. labelWidth: "80",
  302. prop: "is_show",
  303. required: true
  304. }),
  305. K: common_vendor.sr(uFormRef, "abcf3dc4-0", {
  306. "k": "uFormRef"
  307. }),
  308. L: common_vendor.p({
  309. model: form.value,
  310. rules: rules.value,
  311. labelPosition: "top"
  312. }),
  313. M: common_vendor.o(submit),
  314. N: common_vendor.o(StartConfirm),
  315. O: common_vendor.o(StartClose),
  316. P: common_vendor.o(StartClose),
  317. Q: common_vendor.p({
  318. show: showStart.value,
  319. value: form.value.start_time,
  320. mode: "datetime",
  321. closeOnClickOverlay: true,
  322. minDate: Number(/* @__PURE__ */ new Date())
  323. }),
  324. R: common_vendor.o(EndConfirm),
  325. S: common_vendor.o(EndClose),
  326. T: common_vendor.o(EndClose),
  327. U: common_vendor.p({
  328. show: showEnd.value,
  329. value: form.value.end_time,
  330. mode: "datetime",
  331. closeOnClickOverlay: true,
  332. minDate: Number(/* @__PURE__ */ new Date())
  333. })
  334. };
  335. };
  336. }
  337. });
  338. const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-abcf3dc4"], ["__file", "D:/project/学吧/learn_applet/pagesMy/course/add.vue"]]);
  339. wx.createPage(MiniProgramPage);