| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397 |
- let _Http = getApp().globalData.http,
- getTime = require("../../utils/getTime");
- Page({
- data: {
- loading: false,
- showAll: false,
- content: {
- sat_campaignid: 0
- },
- disabled: true,
- otheramount: 0,
- otheramount1: '0.00',
- trainingCost: '0.00',
- allCost: '0.00',
- list: []
- },
- onLoad(options) {
- let form = [{
- label: "活动名称",
- error: false,
- errMsg: "",
- type: "textarea",
- value: "",
- placeholder: "活动名称",
- valueName: "name",
- checking: "base",
- required: true
- }, {
- label: "活动类型",
- error: false,
- errMsg: "",
- type: "option",
- optionNmae: "campaigntype",
- optionType: "radio", //复选 radio 单选
- value: "",
- placeholder: "活动类型",
- valueName: "type",
- checking: "base",
- required: true
- }, {
- label: "承办医院",
- error: false,
- errMsg: "",
- type: "route",
- url: "/prsx/select/hospital/index",
- value: "",
- placeholder: "承办医院",
- valueName: "sa_customersid",
- checking: "base",
- required: true,
- params: {
- "content": {
- "pageNumber": 1,
- "pageSize": 20,
- "where": {
- "condition": ""
- }
- },
- "id": 2025102814083902,
- },
- query: "&radio=true",
- required: false,
- interrupt: true
- }, {
- label: "科室",
- error: false,
- errMsg: "",
- type: "route",
- url: "/prsx/select/department/index",
- value: "",
- placeholder: "请先选择承办医院",
- valueName: "sa_hospitaldepid",
- checking: "base",
- disabled: true,
- params: {
- "content": {
- "pageNumber": 1,
- "pageSize": 20,
- "where": {
- "condition": ""
- }
- },
- "id": 2025102310143002,
- },
- query: "&radio=true",
- required: false
- }, {
- label: "开始日期",
- error: false,
- errMsg: "",
- type: "date",
- start: '',
- value: '',
- placeholder: "开始日期",
- valueName: "begdate",
- checking: "base",
- required: true,
- interrupt: true
- }, {
- label: "结束日期",
- error: false,
- errMsg: "",
- type: "date",
- start: '',
- value: "",
- placeholder: "结束时间",
- valueName: "enddate",
- checking: "base",
- required: false
- }, {
- label: "活动性质",
- error: false,
- errMsg: "",
- type: "option",
- optionNmae: "activitytype",
- optionType: "radio", //复选 radio 单选
- value: "",
- placeholder: "活动性质",
- valueName: "activitytype",
- checking: "base",
- required: false
- }, {
- label: "活动形式",
- error: false,
- errMsg: "",
- type: "option",
- optionNmae: "activityformat",
- optionType: "radio", //复选 radio 单选
- value: "",
- placeholder: "活动形式",
- valueName: "activityformat",
- checking: "base",
- required: true
- }, {
- label: "申请金额",
- error: false,
- errMsg: "",
- type: "digit",
- value: "",
- placeholder: "申请金额",
- valueName: "amount",
- checking: "base",
- required: false
- }, {
- label: "备注",
- error: false,
- errMsg: "",
- type: "textarea",
- value: "",
- placeholder: "请填写",
- valueName: "remarks",
- required: false,
- checking: "base"
- }, {
- label: "其他费用",
- error: false,
- errMsg: "",
- type: "digit",
- value: "",
- placeholder: "其他费用",
- valueName: "otheramount",
- checking: "base",
- required: false,
- interrupt: true
- }]
- if (options.data) {
- let data = JSON.parse(options.data);
- let sa_customersid = data.sa_customersid;
- data.sa_hospitaldepid = data.sa_hospitaldepid ? [data.hospitaldepname, [data.sa_hospitaldepid]] : ''
- data.sa_customersid = data.sa_hospitaldepid ? [data.hospitalname, [data.sa_customersid]] : ''
- form = form.map(v => {
- v.value = data[v.valueName] || "";
- console.log("v.valueName", v.label)
- if (v.label == '科室' && sa_customersid) {
- v.params.content.sa_customersid = sa_customersid;
- v.disabled = false;
- v.placeholder = '选择科室';
- }
- return v
- })
- this.setData({
- disabled: false,
- content: {
- sat_campaignid: data.sat_campaignid,
- },
- form
- })
- }
- this.setData({
- form
- })
- getApp().globalData.Language.getLanguagePackage(this, options.data ? '编辑市场活动' : '新建市场活动');
- },
- interrupt({
- detail
- }) {
- let index = ''
- switch (detail.temporary.item.label) {
- case '承办医院':
- index = detail.form.findIndex(v => v.label == '承办医院')
- if (index != -1) {
- detail.form[index].value = detail.data.value;
- detail.form[index + 1].params.content.sa_customersid = detail.data.id[0];
- detail.form[index + 1].disabled = false;
- detail.form[index + 1].placeholder = '选择科室';
- }
- wx.navigateBack()
- break;
- case '开始日期':
- index = detail.form.findIndex(v => v.label == '开始日期')
- if (index != -1) {
- detail.form[index + 1].start = detail.data.value;
- if (new Date(detail.form[index + 1].value) < new Date(detail.data.value)) {
- detail.form[index + 1].value = '';
- }
- }
- break;
- case '其他费用':
- this.data.otheramount = detail.data.value;
- this.calculatePrice()
- break;
- }
- this.setData({
- form: detail.form
- })
- },
- calculatePrice() {
- const otheramount = this.data.otheramount,
- trainingCost = this.data.list.reduce((sum, item) => {
- return sum + (parseFloat(item.amount) || 0);
- }, 0);
- this.setData({
- otheramount1: _Http.formatMoney(otheramount, 2, '', false),
- trainingCost: _Http.formatMoney(trainingCost, 2, '', false),
- allCost: _Http.formatMoney(((trainingCost - 0) + (otheramount - 0)), 2, '', false)
- });
- },
- /* 表单必填项是否完成 */
- onConfirm({
- detail
- }) {
- this.setData({
- disabled: detail
- })
- },
- // 是否显示全部
- onChange({
- detail
- }) {
- this.setData({
- showAll: detail,
- })
- },
- async submit() {
- this.setData({
- loading: true
- })
- let data = this.selectComponent("#Form").submit(),
- content = this.data.content
- data.sa_customersid = data.sa_customersid.length ? data.sa_customersid[1][0] : 0;
- data.sa_hospitaldepid = data.sa_hospitaldepid.length ? data.sa_hospitaldepid[1][0] : 0;
- data.doctors = this.data.list.map(v => {
- return {
- "sat_campaign_doctorid": 0,
- "sa_doctorid": v.sa_doctorid,
- "amount": v.amount
- }
- });
- _Http.basic({
- "classname": "webmanage.saletool.orderclue.ordercluecampaign",
- "method": "insertormodify_campaign",
- "content": {
- ...content,
- ...data,
- }
- }).then(res => {
- this.setData({
- loading: false
- })
- wx.showToast({
- title: res.code != '1' ? res.msg : '保存成功',
- icon: "none",
- mask: res.code == '1'
- })
- if (res.code != '1') return;
- getCurrentPages().forEach(v => {
- if (v.route == 'prsx/activity/detail') v.getDetail()
- })
- setTimeout(() => {
- if (content.sat_campaignid == 0) {
- wx.redirectTo({
- url: '/prsx/activity/detail?id=' + res.data.sat_campaignid,
- })
- } else {
- wx.navigateBack()
- }
- }, 300)
- })
- },
- insetr() {
- let params = {
- "id": 2025103013523102,
- "content": {
- "sat_campaignid": 0,
- pageNumber: 1,
- pageSize: 20,
- "where": {
- "condition": ""
- }
- }
- };
- wx.navigateTo({
- url: '/prsx/select/docter/index?params=' + JSON.stringify(params) + '&radio=true',
- })
- let that = this;
- getApp().globalData.handleSelect = function ({
- item
- }) {
- wx.showModal({
- content: `是否确定添加“${item.doctorname}”`,
- complete: ({
- confirm
- }) => {
- if (confirm) {
- if (!this.data.list.some(v => v.sa_doctorid == item.sa_doctorid)) {
- item.amount = 0
- that.setData({
- list: this.data.list.concat([item])
- })
- }
- wx.showToast({
- title: '添加成功',
- icon: "none"
- })
- }
- }
- })
- }.bind(this)
- },
- deleteItem(e) {
- const {
- item
- } = e.currentTarget.dataset,
- that = this;
- wx.showModal({
- content: `是否确定删除“${item.doctorname}”`,
- complete: ({
- confirm
- }) => {
- if (confirm) {
- that.setData({
- list: that.data.list.filter(v => v.sa_doctorid != item.sa_doctorid)
- })
- this.calculatePrice();
- }
- }
- })
- },
- toSearch() {
- if (this.data.showSearch && this.data.content.where.condition) {
- this.data.content.where.condition = '';
- this.getList("", true);
- } else if (this.data.condition) {
- this.data.content.where.condition = this.data.condition;
- this.setData({
- condition: this.data.condition
- })
- this.getList("", true);
- }
- this.setData({
- showSearch: !this.data.showSearch
- })
- setTimeout(() => {
- this.setData({
- focus: this.data.showSearch
- })
- }, 300)
- },
- // onChange({
- // detail
- // }) {
- // this.data.condition = detail;
- // },
- onSearch({
- detail
- }) {
- this.data.content.where.condition = detail;
- this.getList("", true)
- },
- changeAmount(e) {
- let value = e.detail.value,
- index = e.currentTarget.dataset.index;
- this.data.list[index].amount = value;
- this.calculatePrice();
- }
- })
|