|
|
@@ -0,0 +1,324 @@
|
|
|
+const _Http = getApp().globalData.http;
|
|
|
+Page({
|
|
|
+ data: {
|
|
|
+ loading: true,
|
|
|
+ isLeader: false, //是否为负责人
|
|
|
+ tabsActive: 0, //tabs 选中项
|
|
|
+ sa_contractid: 0,
|
|
|
+ sColors: getApp().globalData.sColors,
|
|
|
+ deletereasonShow: false,
|
|
|
+ deletereason: "",
|
|
|
+ },
|
|
|
+ onLoad(options) {
|
|
|
+ const appAuth = wx.getStorageSync('auth').wcontract;
|
|
|
+ this.setData({
|
|
|
+ sa_contractid: options.id,
|
|
|
+ appAuth
|
|
|
+ })
|
|
|
+ console.log("appAuth", appAuth)
|
|
|
+ this.getDetail();
|
|
|
+ getApp().globalData.Language.getLanguagePackage(this, '合同详情');
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 获取详情 */
|
|
|
+ getDetail() {
|
|
|
+ /* 基本信息 */
|
|
|
+ _Http.basic({
|
|
|
+ id: 20221121195102,
|
|
|
+ "content": {
|
|
|
+ sa_contractid: this.data.sa_contractid
|
|
|
+ },
|
|
|
+ }).then(res => {
|
|
|
+ console.log("详情", res)
|
|
|
+ if (res.code != '1') return wx.showToast({
|
|
|
+ title: res.data,
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ this.setPreview(res);
|
|
|
+ this.setData({
|
|
|
+ loading: false,
|
|
|
+ detail: res.data,
|
|
|
+ })
|
|
|
+ //获取标签
|
|
|
+ if (this.data.appAuth.isdatatag) this.getTags();
|
|
|
+ if (this.data.appAuth.isdatateam) this.getGroup()
|
|
|
+ this.setTabbar();
|
|
|
+ this.partialRenewal();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ areaInput(e) {
|
|
|
+ this.setData({
|
|
|
+ deletereason: e.detail.value
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onCancel() {
|
|
|
+ this.setData({
|
|
|
+ deletereasonShow: false,
|
|
|
+ })
|
|
|
+ },
|
|
|
+ deleteItem() {
|
|
|
+ if (this.data.deletereason.trim() == '') return wx.showToast({
|
|
|
+ title: '请输入作废原因',
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ _Http.basic({
|
|
|
+ id: 20221121202502,
|
|
|
+ content: {
|
|
|
+ deletereason: this.data.deletereason,
|
|
|
+ sa_contractids: [this.data.sa_contractid]
|
|
|
+ }
|
|
|
+ }).then(res => {
|
|
|
+ console.log("作废", res)
|
|
|
+ wx.showToast({
|
|
|
+ title: res.code == 1 ? '作废成功' : res.msg,
|
|
|
+ icon: "none",
|
|
|
+ mask: res.code == 1
|
|
|
+ })
|
|
|
+ if (res.code == 1) setTimeout(() => {
|
|
|
+ wx.navigateBack()
|
|
|
+ }, 300)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ setPreview(res) {
|
|
|
+ /* 摘要信息 */
|
|
|
+ let briefs = [{
|
|
|
+ label: "合同类型",
|
|
|
+ value: res.data.type
|
|
|
+ }, {
|
|
|
+ label: "经销商",
|
|
|
+ value: res.data.agentname
|
|
|
+ }, {
|
|
|
+ label: "有效期",
|
|
|
+ style: res.data.status == '有效' ? `color:#3874F6` : '',
|
|
|
+ value: res.data.begdate + '至' + res.data.enddate
|
|
|
+ }, {
|
|
|
+ label: "签约日期",
|
|
|
+ value: res.data.signdate
|
|
|
+ }, {
|
|
|
+ label: "备注",
|
|
|
+ value: res.data.remarks
|
|
|
+ }, {
|
|
|
+ label: "状态",
|
|
|
+ value: getApp().globalData.Language.getMapText(res.data.status),
|
|
|
+ style: `color:${this.data.sColors[res.data.status]}`
|
|
|
+ }];
|
|
|
+ /* 基本信息 */
|
|
|
+ let list1 = [{
|
|
|
+ label: "合同编号",
|
|
|
+ value: res.data.billno
|
|
|
+ }, {
|
|
|
+ label: "合同类型",
|
|
|
+ value: res.data.type
|
|
|
+ }, {
|
|
|
+ label: "经销商",
|
|
|
+ value: res.data.agentname
|
|
|
+ }, {
|
|
|
+ label: "有效期",
|
|
|
+ value: res.data.begdate + '至' + res.data.enddate
|
|
|
+ }, {
|
|
|
+ label: "签约日期",
|
|
|
+ value: res.data.signdate
|
|
|
+ }, {
|
|
|
+ label: "履约保证金",
|
|
|
+ value: res.data.earnestmoney
|
|
|
+ }, {
|
|
|
+ label: "货款支付",
|
|
|
+ value: res.data.payment
|
|
|
+ }, {
|
|
|
+ label: "奖励政策",
|
|
|
+ value: res.data.reward
|
|
|
+ }, {
|
|
|
+ label: "年目标手术量",
|
|
|
+ value: res.data.opqty
|
|
|
+ }, {
|
|
|
+ label: "备注",
|
|
|
+ value: res.data.remarks
|
|
|
+ }, {
|
|
|
+ label: "负责人",
|
|
|
+ value: res.data.leader.length ? res.data.leader[0].name : ''
|
|
|
+ }, {
|
|
|
+ label: "状态",
|
|
|
+ value: res.data.status,
|
|
|
+ style: `color:${this.data.sColors[res.data.status]}`
|
|
|
+ }];
|
|
|
+ if (res.data.type == '医院协议') {
|
|
|
+ const obj = {
|
|
|
+ label: "医院",
|
|
|
+ value: res.data.hospitalname
|
|
|
+ };
|
|
|
+ briefs.splice(1, 0, obj)
|
|
|
+ list1.splice(2, 0, obj)
|
|
|
+ }
|
|
|
+ /* 系统信息 */
|
|
|
+ let list2 = [{
|
|
|
+ label: "创建人",
|
|
|
+ value: res.data.createby
|
|
|
+ }, {
|
|
|
+ label: "创建时间",
|
|
|
+ value: res.data.createdate
|
|
|
+ }, {
|
|
|
+ label: "最近编辑人",
|
|
|
+ value: res.data.changeby
|
|
|
+ }, {
|
|
|
+ label: "最近编辑时间",
|
|
|
+ value: res.data.changedate
|
|
|
+ }, {
|
|
|
+ label: "作废原因",
|
|
|
+ value: res.data.deletereason
|
|
|
+ }, {
|
|
|
+ label: "转手次数",
|
|
|
+ value: res.data.leader.length ? res.data.leader[0].leadernum : ''
|
|
|
+ }];
|
|
|
+ this.setData({
|
|
|
+ briefs,
|
|
|
+ list1,
|
|
|
+ list2
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //详情按钮回调
|
|
|
+ tabbarOnClick({
|
|
|
+ detail
|
|
|
+ }) {
|
|
|
+ let data = this.data.detail,
|
|
|
+ that = this;
|
|
|
+ switch (detail.label) {
|
|
|
+ case "编辑":
|
|
|
+ wx.navigateTo({
|
|
|
+ url: `/prsx/contract/insert?data=${JSON.stringify(data)}&type=${data.type}`,
|
|
|
+ })
|
|
|
+ break;
|
|
|
+ case "作废":
|
|
|
+ that.setData({
|
|
|
+ deletereasonShow: true
|
|
|
+ })
|
|
|
+ break;
|
|
|
+ case "跟进":
|
|
|
+ that.selectComponent("#Trace").toAdd()
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ console.log(detail)
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /* 底部功能 */
|
|
|
+ async setTabbar() {
|
|
|
+ let detail = this.data.detail,
|
|
|
+ isAdmin = wx.getStorageSync("userMsg").usertype == 0,
|
|
|
+ isLeader = detail.leader.length ? detail.leader.some(v => v.userid == wx.getStorageSync('userMsg').userid) : false,
|
|
|
+ editdataleader = isLeader ? 1 : 0,
|
|
|
+ tabbarList = [],
|
|
|
+ appAuth = this.data.appAuth,
|
|
|
+ tabsList = [{
|
|
|
+ label: "详细信息",
|
|
|
+ icon: "icon-tabxiangxixinxi1"
|
|
|
+ }];
|
|
|
+ if (!isLeader) {
|
|
|
+ let res = await getApp().agentOrNot("sa_contract", this.data.sa_contractid),
|
|
|
+ data = res.code == '1' ? res.data : {
|
|
|
+ editable: 0,
|
|
|
+ editdataleader: 0
|
|
|
+ }
|
|
|
+ if (appAuth.isdatateam) isLeader = this.selectComponent("#Group").data.editable == 1;
|
|
|
+ if (!isLeader) isLeader = data.editable == 1;
|
|
|
+ editdataleader = data.editdataleader;
|
|
|
+ }
|
|
|
+ if (appAuth.isdatafollowup) {
|
|
|
+ tabsList.unshift({
|
|
|
+ label: "跟进动态",
|
|
|
+ icon: "icon-tabgenjinjilu",
|
|
|
+ model: "#Trace"
|
|
|
+ })
|
|
|
+ tabbarList.push({
|
|
|
+ icon: "color-genjin",
|
|
|
+ label: "跟进"
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (appAuth.update || isLeader) tabbarList.push({
|
|
|
+ icon: "color-bianji",
|
|
|
+ label: "编辑"
|
|
|
+ })
|
|
|
+
|
|
|
+ if (appAuth.delete || isLeader) tabbarList.push({
|
|
|
+ icon: "icon-shanchu",
|
|
|
+ label: "作废"
|
|
|
+ })
|
|
|
+
|
|
|
+ tabsList = tabsList.concat([{
|
|
|
+ label: "附件",
|
|
|
+ icon: "icon-tabfujian1",
|
|
|
+ model: "#Files"
|
|
|
+ }, {
|
|
|
+ label: "操作",
|
|
|
+ icon: "icon-tabcaozuojilu1",
|
|
|
+ model: "#Record"
|
|
|
+ }])
|
|
|
+ this.setData({
|
|
|
+ tabbarList,
|
|
|
+ isLeader,
|
|
|
+ tabsList
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //tabs 切换
|
|
|
+ tabsChange({
|
|
|
+ detail
|
|
|
+ }) {
|
|
|
+ this.setData({
|
|
|
+ tabsActive: detail
|
|
|
+ });
|
|
|
+ this.partialRenewal();
|
|
|
+ },
|
|
|
+ //局部数据更新 tabs
|
|
|
+ partialRenewal(init = false) {
|
|
|
+ try {
|
|
|
+ let model = this.data.tabsList[this.data.tabsActive].model;
|
|
|
+ if (model) {
|
|
|
+ let Component = this.selectComponent(model),
|
|
|
+ {
|
|
|
+ total,
|
|
|
+ pageNumber,
|
|
|
+ pageTotal
|
|
|
+ } = Component.data.content,
|
|
|
+ id = model == "#Address" ? this.data.detail.sys_enterpriseid : this.data.detail.sa_contractid;
|
|
|
+ if (model == "#Files") init = true;
|
|
|
+ if (total == null || init) {
|
|
|
+ Component.getList(id, init);
|
|
|
+ } else if (pageNumber <= pageTotal) {
|
|
|
+ Component.getList(id, false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //更新标签
|
|
|
+ getTags() {
|
|
|
+ this.selectComponent("#Tags").getTags()
|
|
|
+ },
|
|
|
+ //更新团队成员
|
|
|
+ getGroup() {
|
|
|
+ this.selectComponent("#Group").getList().then(this.setTabbarList)
|
|
|
+ },
|
|
|
+ onReachBottom() {
|
|
|
+ this.partialRenewal();
|
|
|
+ },
|
|
|
+ onUnload() {
|
|
|
+ const page = getCurrentPages().find(v => v.__route__ == 'prsx/contract/index');
|
|
|
+ if (!page) return;
|
|
|
+ let content = JSON.parse(JSON.stringify(page.data.content));
|
|
|
+ content.pageSize = (content.pageNumber - 1) * content.pageSize;
|
|
|
+ content.pageNumber = 1;
|
|
|
+ _Http.basic({
|
|
|
+ id: '20221121201502',
|
|
|
+ content
|
|
|
+ }).then(res => {
|
|
|
+ console.log("更新列表", res);
|
|
|
+ if (res.code == '1') {
|
|
|
+ page.setData({
|
|
|
+ list: res.data,
|
|
|
+ "content.total": res.total
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+})
|