import ProjectService from '../../../net/api/projectApi' import UserService from '../../../net/api/userApi' const utils = require("../../../utils/util") const { isValidPhone, isValidEmail } = require('../../../utils/validator') Page({ data: { date: utils.formatDate(new Date()), completeDate: utils.formatDate(new Date()), //开发完成时间 version: "v1.0", //系统版本 type: 'ALL', //默认全托管 上级页面传递type参数 all全托管 material写材料 languageList: ['JAVA'], isShowLanguage: false, //是否显示语言选择 isShowContact: false, //是否显示联系人 currentLanguage: 'JAVA', //当前选中的语言 price: 0, packageList: [], //套餐包 couponsList: [], //优惠卷 contactList: [], //联系人 selectContact: {}, //当前选中的联系人 showCreateContact: false, //显示创建联系人 contactPhone: '', //联系人电话 contactName: '', //联系人姓名 contactEmail: '', //联系人邮箱 csaNo: '', //客服NO showError: false, errorHint: '', showSuccess: false, successHint: '', showCommendProject: false, //显示推荐项目名称弹窗 projectName: '', projectNameList: [], isUrgent: false, //是否加急 }, onLoad(options) { wx.setNavigationBarTitle({ title: '创建软著', }) const typeParams = options.type //类型 const priceParams = options.price //价格 const isUrgentParams = options.isUrgent if (priceParams && priceParams > 0) { this.setData({ price: priceParams, type: typeParams, isUrgent: isUrgentParams }) } else { wx.showToast({ title: '数据有误,请重试', icon: 'error' }) wx.navigateBack() } //获取项目联系人 this.doGetContactList() //获取套餐包 this.doGetPackage() //获取优惠卷 this.doGetCoupons() //获取客服ID this.doGetCsaNo(false) }, //系统版本 inputVersion(e) { console.log(e.detail.value) this.setData({ version: e.detail.value }) }, //开发完成时间 bindDateChange(e) { console.log(e) this.setData({ completeDate: e.detail.value }) }, toggleContact() { this.setData({ isShowContact: !this.data.isShowContact }) }, toggleOptions() { this.setData({ isShowLanguage: !this.data.isShowLanguage }); }, selectOption(e) { const selectedValue = e.currentTarget.dataset.value; this.setData({ currentLanguage: selectedValue, isShowLanguage: false }); }, inputContactName(e) { this.setData({ contactName: e.detail.value }) }, inputContactPhone(e) { console.log(e) this.setData({ contactPhone: e.detail.value }) }, inputContactEmail(e) { this.setData({ contactEmail: e.detail.value }) }, //监听项目名称 inputProjectName(e) { this.setData({ projectName: e.detail.value }) }, //选中联系人 doChangeContact(e) { console.log(e) this.setData({ selectContact: this.data.contactList[e.detail.value] }) }, //获取产权联系人 doGetContactList() { wx.showLoading({ title: '加载中...', }) const _self = this ProjectService.doGetContactList() .then(res => { wx.hideLoading() console.log(res) _self.setData({ contactList: res, selectContact: res[0] }) }, err => { wx.hideLoading() }) }, //获取套餐包 doGetPackage() { ProjectService.doGetPackageList() .then(res => { }, err => { }) }, //获取优惠卷 doGetCoupons() { ProjectService.doGetCouponseList() .then(res => { }, err => { }) }, //获取客服NO doGetCsaNo(isShow) { const _self = this UserService.doGetCsaNo() .then(res => { console.log(res) _self.setData({ csaNo: res.csaNo }) if (isShow) { _self.setData({ isShowContact: true }) } }, err => { console.log(err) }) }, //推荐项目名称 doCommendProjectName() { const _self = this _self.setData({ showCommendProject: true }) }, //生成项目全称列表 doCreateFullName() { const _self = this wx.showLoading({ title: '生成中...', }) const data = { prompt: _self.data.projectName } ProjectService.doGetCommendProjectName(data) .then(res => { wx.hideLoading() console.log(res) if (res && res.length > 0) { _self.setData({ projectNameList: res }) } else { _self.setData({ showError: true, errorHint: '未查询到相关推荐的系统名称,请重新输入' }) } }, err => { wx.hideLoading() console.log(err) }) }, //监听项目名称输入 inputCommendProjectName(e) { const _self = this _self.setData({ projectName: e.detail.value }) }, //选择推荐的项目名称 doSelectProjectName(e) { const _self = this console.log(e) _self.setData({ projectName: e.currentTarget.dataset.value, showCommendProject: false, projectNameList: [] }) }, //显示创建联系人 doCreateContact() { const _self = this if (_self.data.csaNo == '') { _self.doGetCsaNo(true) } else { _self.setData({ showCreateContact: true }) } }, //保存联系人 doSaveContact() { //校验参数 const _self = this if (_self.data.contactName == '') { _self.setData({ showError: true, errorHint: '请输入联系人姓名' }) return } if (_self.data.contactPhone == '' || !isValidPhone(_self.data.contactPhone)) { _self.setData({ showError: true, errorHint: '请输入合法的联系电话' }) return } if (_self.data.contactEmail != '') { if (!isValidEmail(_self.data.contactEmail)) { _self.setData({ showError: true, errorHint: '请输入合法的邮箱' }) return } } wx.showLoading({ title: '创建中...', }) const data = { "company": "", "csaNo": _self.data.csaNo, "name": _self.data.contactName, "phone": _self.data.contactPhone } UserService.doCreateContact(data) .then(res => { wx.hideLoading() _self.setData({ showSuccess: true, successHint: '新建成功', isShowContact: false, contactEmail: '', contactPhone: '', contactName: '' }) //获取一遍联系人 _self.doGetContactList() }, err => { wx.hideLoading() _self.setData({ showError: true, errorHint: err.msg ? err.msg : '新建失败,请稍后重试', isShowContact: false }) }) }, //创建项目 doCreateProject() { //校验参数 const _self = this const isLegal = _self.doCheckProjectParams() if (isLegal) { wx.showLoading({ title: '创建中...', }) //构建参数 const data = { applyContactCsaNo: _self.data.selectContact.csaNo, // 联系人客服编号 applyContactId: _self.data.selectContact.projContactId, //联系人ID applyContactName: _self.data.selectContact.name, //联系人姓名 applyContactPhone: _self.data.selectContact.phone, //联系人手机 projDevCompleteDate: _self.data.completeDate, //开发完成日期 projSubName: _self.data.projectName, //项目简称 projVersion: _self.data.version, //项目版本 backendCodeLang: _self.data.currentLanguage, projChargeType: 'ALL', //项目收费类型 ALL,FREE,MATERIAL,MATERIAL_AGENT,MATERIAL_AGENT_URGENT } ProjectService.doCreateProject(data) .then(res => { console.log(res) wx.hideLoading() }, err => { wx.hideLoading() console.log(err) }) } }, //校验参数 doCheckProjectParams() { const _self = this if (_self.data.projectName == '') { _self.setData({ showError: true, errorHint: '请输入项目名称' }) return false } if (Object.keys(_self.data.selectContact).length <= 0) { _self.setData({ showError: true, errorHint: '请选择产权联系人' }) return false } return true } })