123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- "use strict";
- const common_vendor = require("../../common/vendor.js");
- if (!Array) {
- const _easycom_up_upload2 = common_vendor.resolveComponent("up-upload");
- _easycom_up_upload2();
- }
- const _easycom_up_upload = () => "../../node-modules/uview-plus/components/u-upload/u-upload.js";
- if (!Math) {
- _easycom_up_upload();
- }
- const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
- __name: "index",
- setup(__props) {
- const $api = common_vendor.inject("$api");
- const $apifile = common_vendor.inject("$apifile");
- const form = common_vendor.ref({ file: [] });
- const typeList = common_vendor.ref([]);
- const errors = common_vendor.ref({});
- const user = common_vendor.computed(() => {
- return common_vendor.index.getStorageSync("user");
- });
- common_vendor.onShow(async () => {
- await searchOther();
- });
- const searchOther = async () => {
- let res;
- res = await $api(`dictData`, "GET", { code: "opinionType", is_use: "0" });
- if (res.errcode === 0)
- typeList.value = res.data;
- };
- const typeChange = (e) => {
- const data = typeList.value[e.detail.value];
- if (data) {
- form.value.type = data.value;
- form.value.type_name = data.label;
- }
- };
- const deletePic = (event) => {
- const file = form.value.file.filter((i) => i.url !== event.file.url);
- form.value.file = file;
- };
- const afterRead = async (event) => {
- const url = event.file[0].url;
- const result = await $apifile(`/web/learn_opinion/upload`, "file", url, "file");
- if (result.errcode === 0)
- form.value.file = [...form.value.file, ...[result]];
- };
- const validateObject = (obj) => {
- const errors2 = {};
- if (!obj.type || obj.type.trim() === "") {
- errors2.type = "请填写问题类型!";
- }
- if (!obj.brief || obj.brief.trim() === "") {
- errors2.brief = "请填写问题描述!";
- }
- if (Object.keys(errors2).length > 0) {
- return errors2;
- }
- return null;
- };
- const mergeObjectsWithoutDuplicates = async (obj1, obj2) => {
- return Object.keys({ ...obj1, ...obj2 }).reduce((acc, key) => {
- if (!acc.hasOwnProperty(key)) {
- if (key == "type_name") {
- delete acc[key];
- } else {
- acc[key] = obj1.hasOwnProperty(key) ? obj1[key] : obj2[key];
- }
- }
- return acc;
- }, {});
- };
- const formSubmit = async (e) => {
- const data = await mergeObjectsWithoutDuplicates(e.detail.value, form.value);
- const errorsInfo = await validateObject(data);
- if (errorsInfo) {
- errors.value = errorsInfo;
- for (const key in errorsInfo) {
- if (errorsInfo.hasOwnProperty(key)) {
- console.error(`${key} 错误: ${errorsInfo[key]}`);
- }
- }
- } else {
- errors.value = {};
- data.user = user.value._id;
- if (user.value.role_type == "Student")
- data.userType = "1";
- else
- data.userType = "0";
- data.time = common_vendor.hooks().format("YYYY-MM-DD HH:mm:ss");
- const res = await $api(`opinion`, "POST", data);
- if (res.errcode == "0") {
- common_vendor.index.showToast({
- title: "反馈成功!",
- icon: "success"
- });
- common_vendor.index.navigateBack({
- delta: 1
- });
- }
- }
- };
- return (_ctx, _cache) => {
- return common_vendor.e({
- a: common_vendor.t(form.value.type_name || "请选择 >"),
- b: common_vendor.o(typeChange),
- c: typeList.value,
- d: errors.value.type
- }, errors.value.type ? {
- e: common_vendor.t(errors.value.type)
- } : {}, {
- f: form.value.brief,
- g: errors.value.brief
- }, errors.value.brief ? {
- h: common_vendor.t(errors.value.brief)
- } : {}, {
- i: common_vendor.o(afterRead),
- j: common_vendor.o(deletePic),
- k: common_vendor.p({
- fileList: form.value.file,
- name: "icon",
- multiple: true,
- maxCount: 3
- }),
- l: common_vendor.o(formSubmit)
- });
- };
- }
- });
- const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-09ed81ef"], ["__file", "D:/project/学吧/learn_applet/pagesMy/opinion/index.vue"]]);
- wx.createPage(MiniProgramPage);
|