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: [], //套餐包 tempPackage: {}, //临时选中的优惠卷,没有点击确定按钮前 selectPackage: {}, //选中的套餐包 couponsList: [], //优惠卷 selectCoupons: {}, //选中的优惠卷 tempCoupons: {}, //临时选中的优惠卷,没有点击确定按钮 contactList: [], //联系人 selectContact: {}, //当前选中的联系人 showCreateContact: false, //显示创建联系人 contactPhone: '', //联系人电话 contactName: '', //联系人姓名 contactEmail: '', //联系人邮箱 csaNo: '', //客服NO showError: false, errorHint: '', showSuccess: false, successHint: '', showCommendProject: false, //显示推荐项目名称弹窗 projectName: '', projectNameList: [], isUrgent: false, //是否加急 showCoupons: false, //显示优惠卷 showPackage: false, //显示套餐包 canSelCoupons: true, //是否可以使用优惠卷 canSelPackage: true, //是否可以使用套餐包 }, 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 }) }, //选中优惠卷 selectCoupons(e) { this.setData({ tempCoupons: e.currentTarget.dataset.value }) }, //确定使用选中的优惠卷 confirmSelCoupons() { this.setData({ selectCoupons: this.data.tempCoupons, showCoupons: false, tempCoupons: {}, canSelPackage: false, selectPackage: {}, tempPackage: {} }) }, //监听项目名称 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() { const _self = this const data = { page: 1, rows: 100, packageType: _self.data.type, keyong: 1, } ProjectService.doGetPackageList(data) .then(res => { console.log('套餐包') console.log(res) _self.setData({ packageList: res.rows }) }, err => { console.log(err) _self.setData({ packageList: [] }) }) }, //获取优惠卷 doGetCoupons() { const _self = this const data = { page: 1, rows: 100, isEffective: 1, isUsed: 0 } ProjectService.doGetCouponseList(data) .then(res => { console.log('优惠卷') console.log(res) _self.setData({ couponsList: res.rows }) }, err => { console.log(err) _self.setData({ couponsList: [] }) }) }, //显示优惠卷 doShowCoupons() { if (this.data.couponsList.length <= 0) { this.setData({ showError: true, errorHint: '您没有可以使用的优惠卷' }) } else { this.setData({ tempCoupons: this.data.selectCoupons, showCoupons: !this.data.showCoupons }) } }, //显示套餐包 doShowPackage() { const _self = this if (_self.data.packageList.length > 0) { _self.setData({ tempPackage: _self.data.selectPackage, showPackage: true }) } else { _self.setData({ errorHint: '您暂时没有可以使用的套餐包', showError: true }) } }, //确定套餐包 confirmSelectPackage() { this.setData({ selectPackage: this.data.tempPackage, showPackage: false, tempPackage: {}, canSelCoupons: false, selectCoupons: {}, tempCoupons: {} }) }, //取消选中的套餐包或优惠卷 clearSelectPackageOrCoupons() { this.setData({ selectCoupons: {}, selectPackage: {}, tempCoupons: {}, tempPackage: {}, canSelCoupons: true, canSelPackage: true }) }, //点击选择套餐包 selectPackage(e) { console.log(e) this.setData({ tempPackage: e.currentTarget.dataset.value }) }, //获取客服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: '创建中...', }) //构建参数 console.log(_self.data.isUrgent) var list = [] if (_self.data.isUrgent != '') { list = [_self.data.isUrgent] } 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, //开发完成日期 projName: _self.data.projectName, //项目简称 projVersion: _self.data.version, //项目版本 backendCodeLang: _self.data.currentLanguage, projChargeType: _self.data.type, //项目收费类型 ALL,FREE,MATERIAL,MATERIAL_AGENT,MATERIAL_AGENT_URGENT listProjChargeAdditional: list } 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 } })