Browse Source

Merge branch 'master' into red

xiaohaizhao 3 months ago
parent
commit
64b2e2d05e

+ 3 - 1
app.json

@@ -92,7 +92,9 @@
                 "calendar/index",
                 "calendar/task/index",
                 "calendarN/index",
-                "calendar/task/detail"
+                "calendar/task/detail",
+                "calendar/follow/detail",
+                "calendar/task/list"
             ]
         },
         {

+ 1 - 1
project.private.config.json

@@ -137,7 +137,7 @@
                     "scene": null
                 },
                 {
-                    "name": "合同管理",
+                    "name": "经销商协议",
                     "pathName": "prsx/contract/index",
                     "query": "",
                     "launchMode": "default",

+ 292 - 0
prsx/calendar/follow/detail.js

@@ -0,0 +1,292 @@
+const _Http = getApp().globalData.http
+Page({
+  data: {
+    loading: true,
+    isLeader: false, //是否为负责人
+    tabsActive: 0, //tabs 选中项
+    sys_datafollowupid: 0,
+    sColors: getApp().globalData.sColors,
+    followdate: ''
+  },
+  onLoad(options) {
+    console.log(options, 'options555')
+    const appAuth = wx.getStorageSync('auth').wdoctors;
+
+    let tabsList = [{
+      label: "关联任务",
+      icon: "icon-yisheng",
+      model: "#Task"
+    }, {
+      label: "附件",
+      icon: "icon-tabfujian1",
+      model: "#Files"
+    }, {
+      label: "操作",
+      icon: "icon-tabcaozuojilu1",
+      model: "#Record"
+    }];
+
+    console.log("appAuth", appAuth)
+    this.setData({
+      sys_datafollowupid: options.id,
+      tabsList,
+      appAuth,
+      followdate: options.followdate
+    })
+    this.getDetail();
+    getApp().globalData.Language.getLanguagePackage(this);
+  },
+
+  /* 获取详情 */
+  getDetail() {
+    /* 基本信息 */
+    _Http.basic({
+      "id": 20221026085601,
+      "content": {
+        sys_datafollowupid: this.data.sys_datafollowupid
+      },
+    }).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,
+      })
+      let page = this.selectComponent("#Task")
+      page.getList(res.data, true, this.data.followdate)
+      //获取标签
+      this.setTabbar();
+      // this.partialRenewal();
+    });
+  },
+
+  setPreview(res) {
+    /* 摘要信息 */
+    let briefs = [];
+
+    this.setData({
+      briefs,
+    });
+  },
+  //详情按钮回调
+  tabbarOnClick({
+    detail
+  }) {
+    let data = JSON.parse(JSON.stringify(this.data.detail)),
+      that = this;
+    switch (detail.label) {
+      case "编辑":
+        data.sys_datafollowupid = data.sys_datafollowupid
+        wx.navigateTo({
+          url: `/prsx/trace/add/index?data=${JSON.stringify(data)}&ownertable=sys_task&sys_datafollowupid=${data.sys_datafollowupid}&isBack=${true}`,
+        })
+        break;
+      case "删除":
+        wx.showModal({
+          content: `是否确定删除跟进?`,
+          complete: (res) => {
+            if (res.confirm) _Http.basic({
+              "content": {
+                "sys_datafollowupid": data.sys_datafollowupid,
+                "ownertable": that.data.ownertable,
+                "ownerid": that.data.ownerid,
+                deletereason: ""
+              },
+              "id": 20220930121701
+            }).then(res => {
+              console.log("删除跟进", res)
+              wx.showToast({
+                title: res.code != '1' ? res.msg : '删除成功',
+                icon: "none",
+                mask: res.code == '1'
+              })
+              if (res.code != '1') return;
+              setTimeout(() => {
+                wx.navigateBack()
+              }, 300)
+            })
+          }
+        })
+        break;
+      case "更换负责人":
+        wx.navigateTo({
+          url: `/pages/group/select?data=${JSON.stringify({
+                         ownertable:"sa_doctor",
+                         ownerid:this.data.sys_datafollowupid,
+                    })}&radio=true&principal=true`,
+        })
+        break;
+      default:
+        console.log(detail)
+        break;
+    }
+  },
+  /* 更换负责人 */
+  handelSubmit(arr) {
+    const that = this;
+    wx.showModal({
+      title: getApp().globalData.Language.getMapText('提示'),
+      content: getApp().globalData.Language.getMapText('是否确认更换负责人'),
+      complete: ({
+        confirm
+      }) => {
+        if (confirm) wx.showModal({
+          title: getApp().globalData.Language.getMapText('提示'),
+          content: getApp().globalData.Language.getMapText('是否参与该数据的后续工作'),
+          cancelText: getApp().globalData.Language.getMapText('不参与'),
+          confirmText: getApp().globalData.Language.getMapText('参与'),
+          complete: (s) => {
+            _Http.basic({
+              "id": 20220930103701,
+              "content": {
+                ownertable: "sa_doctor",
+                ownerid: that.data.sys_datafollowupid,
+                userid: arr[0],
+                isaddoldleader: s.confirm ? 1 : 0
+              }
+            }).then(res => {
+              console.log("更换负责人", res)
+              if (res.code != '1') return wx.showToast({
+                title: res.data,
+                icon: "none"
+              });
+              wx.showToast({
+                title: getApp().globalData.Language.getMapText('更换成功'),
+                icon: "none",
+                mask: true
+              });
+              getCurrentPages().forEach(v => {
+                if (['packageA/setclient/index'].includes(v.__route__)) v.getList(true)
+              })
+              setTimeout(() => {
+                wx.navigateBack({
+                  delta: 2
+                });
+              }, 300)
+            })
+          }
+        })
+      }
+    })
+  },
+  /* 底部功能 */
+  async setTabbar() {
+    console.log(this.data.detail, 'detail2525')
+    let detail = this.data.detail,
+      isAdmin = this.data.isAdmin,
+      isLeader = detail.createuserid == wx.getStorageSync('userMsg').userid,
+      editdataleader = isLeader ? 1 : 0,
+      tabbarList = [],
+      appAuth = this.data.appAuth,
+      tabsList = [{
+        label: "关联任务",
+        icon: "icon-yisheng",
+        model: "#Task"
+      }];
+
+    if (!isLeader) {
+      let res = await getApp().agentOrNot("sat_campaign", this.data.sat_campaignid),
+        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;
+    }
+
+    tabsList = tabsList.concat([{
+      label: "附件",
+      icon: "icon-tabfujian1",
+      model: "#Files"
+    }, {
+      label: "操作",
+      icon: "icon-tabcaozuojilu1",
+      model: "#Record"
+    }])
+    if (isLeader || isAdmin) {
+      tabbarList.push({
+        icon: "color-bianji",
+        label: "编辑"
+      })
+      tabbarList.push({
+        icon: "icon-shanchu1",
+        label: "删除"
+      })
+    }
+    this.setData({
+      tabbarList,
+      isLeader,
+      tabsList
+    })
+  },
+  //tabs 切换
+  tabsChange({
+    detail
+  }) {
+    this.setData({
+      tabsActive: detail
+    });
+    this.partialRenewal();
+  },
+  //局部数据更新 tabs
+  partialRenewal(init = false) {
+    let model = this.data.tabsList[this.data.tabsActive].model;
+    if (model) {
+      let Component = this.selectComponent(model),
+        {
+          total,
+          pageNumber,
+          pageTotal
+        } = Component.data.content,
+        id = model == "#Clue" ? this.data.detail.sys_datafollowupid : this.data.detail.sys_enterpriseid;
+      if (model == "#Files") init = true;
+      if (total == null || init) {
+        Component.getList(id, init);
+      } else if (pageNumber <= pageTotal) {
+        Component.getList(id, false);
+      }
+    }
+  },
+  //更新标签
+  getTags() {
+    this.selectComponent("#Tags").getTags()
+  },
+  //更新团队成员
+  getGroup() {
+    this.selectComponent("#Group").getList().then(this.setTabbarList)
+  },
+  onReachBottom() {
+    this.partialRenewal();
+  },
+  onUnload() {
+    getCurrentPages().forEach(page => {
+      if (page.__route__ == 'prsx/doctors/index') {
+        let content = JSON.parse(JSON.stringify(page.data.content));
+        content.pageSize = (content.pageNumber - 1) * content.pageSize;
+        content.pageNumber = 1;
+        _Http.basic({
+          id: '2025102208523002',
+          content
+        }).then(res => {
+          console.log("更新医生列表", res);
+          if (res.code == '1') {
+            page.setData({
+              list: res.data,
+              "content.total": res.total
+            })
+          }
+        })
+      } else if (page.__route__ == 'prsx/department/detail') {
+        page.selectComponent("#Doctors").getList(page.data.detail.sa_hospitaldepid, true)
+      } else if (page.__route__ == 'prsx/hospital/detail') {
+        page.selectComponent("#Doctors").getList('', true)
+      }
+    })
+  }
+})

+ 6 - 0
prsx/calendar/follow/detail.json

@@ -0,0 +1,6 @@
+{
+    "usingComponents": {
+      "Task": "/prsx/calendar/task/list"
+    },
+    "navigationBarTitleText": "跟进详情"
+}

+ 199 - 0
prsx/calendar/follow/detail.scss

@@ -0,0 +1,199 @@
+.setclient-list-item {
+	width: 100vw;
+	background-color: #fff;
+	box-sizing: border-box;
+
+	.con {
+		padding-left: 30rpx;
+		display: flex;
+		width: 100%;
+		box-sizing: border-box;
+		padding-top: 20rpx;
+
+		.mian {
+			flex: 1;
+			width: 0;
+			padding-right: 20rpx;
+			box-sizing: border-box;
+
+			.label {
+				font-size: 28rpx;
+				font-family: PingFang SC-Bold, PingFang SC;
+				font-weight: bold;
+				color: #333333;
+				height: 40rpx;
+				line-height: 40rpx;
+			}
+
+			.tag-box {
+				margin-top: 10rpx;
+
+				.tag {
+					height: 40rpx;
+					font-size: 20rpx;
+					font-family: PingFang SC-Regular, PingFang SC;
+					padding: 0 12rpx;
+					margin-right: 8rpx;
+				}
+			}
+		}
+
+		.icon {
+			display: flex;
+			height: 136rpx;
+			align-items: center;
+			margin-top: -20rpx;
+			color: #CFCFCF;
+			width: 28rpx;
+			margin-right: 30rpx;
+			flex-shrink: 0;
+		}
+
+		.extend {
+			display: flex;
+			height: 116rpx;
+			width: 48rpx;
+			margin-right: 30rpx;
+			flex-shrink: 0;
+		}
+	}
+}
+
+.trace-box {
+  background-color: #ffffff;
+  margin-bottom: 20rpx;
+
+  .item {
+      position: relative;
+      width: 100vw;
+      padding: 20rpx 30rpx;
+      box-sizing: border-box;
+
+      .resource{
+          position: absolute;
+          padding: 4rpx 14rpx;
+          background-color: #3874F6;
+          color: #fff;
+          font-size: 24rpx;
+          top: 20rpx;
+          right: 20rpx;
+          border-radius: 2rpx;
+      }
+
+      .user {
+          display: flex;
+
+          .portrait {
+              width: 80rpx;
+              height: 80rpx;
+              text-align: center;
+              line-height: 80rpx;
+              border-radius: 50%;
+              font-size: 28rpx;
+              font-family: PingFang SC-Regular, PingFang SC;
+              color: #FFFFFF;
+              margin-right: 20rpx;
+              flex-shrink: 0;
+          }
+
+          .content {
+              .label {
+                  font-size: 30rpx;
+                  font-family: PingFang SC-Regular, PingFang SC;
+                  color: #333333;
+
+                  text {
+                      font-size: 24rpx;
+                      font-family: PingFang SC-Regular, PingFang SC;
+                      color: #999999;
+                  }
+              }
+
+              .exp {
+                  margin-top: 8rpx;
+                  font-size: 24rpx;
+                  font-family: PingFang SC-Regular, PingFang SC;
+                  color: #333333;
+              }
+          }
+
+
+      }
+
+      .text {
+          width: 100%;
+          font-size: 28rpx;
+          font-family: PingFang SC-Regular, PingFang SC;
+          color: #666666;
+          word-break: break-all;
+          margin-top: 20rpx;
+      }
+
+      .type {
+          font-size: 24rpx;
+          font-family: PingFang SC-Regular, PingFang SC;
+          color: #999999;
+          margin-top: 20rpx;
+
+          text {
+              font-size: 24rpx;
+              color: #333333;
+          }
+      }
+  }
+
+  .bottom {
+      display: flex;
+      justify-content: flex-end;
+      align-items: center;
+      width: 100%;
+      height: 80rpx;
+      background: #FFFFFF;
+      border-top: 1px solid #DDDDDD;
+
+      navigator {
+          padding: 0 20rpx;
+          line-height: 80rpx;
+
+          .iconfont {
+              font-size: 28rpx;
+              color: #999999;
+              margin-right: 8rpx;
+          }
+
+          font-size: 24rpx;
+          font-family: PingFang SC-Regular,
+          PingFang SC;
+          color: #333333;
+      }
+  }
+}
+
+.text-label {
+  color: #999999 !important;
+}
+
+.createdate {
+  display: flex;
+  align-items: center;
+  font-size: 24rpx;
+  color: #3874F6;
+  margin-bottom: 20rpx;
+}
+
+.createdate::before {
+  content: '';
+  display: inline-block;
+  width: 16rpx;
+  height: 16rpx;
+  border-radius: 50%;
+  border: 4rpx solid #3874F6;
+  box-sizing: border-box;
+  margin-right: 8rpx;
+}
+
+.line-1 {
+	overflow: hidden;
+	white-space: nowrap;
+	text-overflow: ellipsis;
+}

+ 76 - 0
prsx/calendar/follow/detail.wxml

@@ -0,0 +1,76 @@
+<view class="trace-box" url="#">
+  <navigator url="#" class="item" data-item="{{detail}}">
+    <view wx:if="{{detail.resource}}" class="resource"> {{language[detail.resource]||detail.resource}}</view>
+    <view class="createdate">
+      {{detail.createdate}}
+    </view>
+    <view class="user">
+      <image class="portrait" wx:if="{{detail.headpic}}" src="{{detail.headpic}}" mode="aspectFill" lazy-load />
+      <view class="portrait" style="background-color: #3874F6;" wx:else>
+        {{language[detail.createby[0]]||detail.createby[0]}}
+      </view>
+      <view class="content">
+        <view class="label">
+          {{language[detail.createby]||detail.createby}}
+        </view>
+        <view class="exp">
+          <text style="margin-right:50rpx;">{{language['部门']||'部门'}}:{{detail.userextend[0].depname||' --'}}</text>
+          <text>{{language['职位']||'职位'}}:{{detail.userextend[0].position||' --'}}</text>
+        </view>
+      </view>
+    </view>
+    <view class="type" >
+      <text class="text-label">{{language['跟进对象']||'跟进对象'}}:</text><text>{{language[detail.followobj]||detail.followobj}}</text>
+    </view>
+    <view class="type" wx:if="{{detail.hospitalname}}">
+      <text class="text-label">{{language['医院']||'医院'}}:</text><text>{{language[detail.hospitalname]||detail.hospitalname}}</text>
+    </view>
+    <view class="type" wx:if="{{detail.hospitaldepname}}">
+      <text class="text-label">{{language['科室']||'科室'}}:</text><text>{{language[detail.hospitaldepname]||detail.hospitaldepname}}</text>
+    </view>
+    <view class="type" wx:if="{{detail.doctorname}}">
+      <text class="text-label">{{language['医生']||'医生'}}:</text><text>{{language[detail.doctorname]||detail.doctorname}}</text>
+    </view>
+    <view class="type" wx:if="{{detail.agentsname}}">
+      <text class="text-label">{{language['经销商']||'经销商'}}:</text><text>{{language[detail.agentsname]||detail.agentsname}}</text>
+    </view>
+    <view class="type" >
+      <text class="text-label">{{language['跟进类型']||'跟进类型'}}:</text><text>{{language[detail.type]||detail.type}}</text>
+    </view>
+    <view class="type" wx:if="{{detail.tasktitle}}">
+      <text class="text-label">{{language['关联任务']||'关联任务'}}:</text><text>{{language[detail.tasktitle]||detail.tasktitle}}</text>
+    </view>
+    <view class="type" wx:if="{{detail.products}}">
+      <text class="text-label">{{language['推荐产品']||'推荐产品'}}:</text><text>{{language[detail.products]||detail.products}}</text>
+    </view>
+    <view class="type" >
+      <text class="text-label">{{language['目的']||'目的'}}:</text><text>{{language[detail.target]||detail.target||'--'}}</text>
+    </view>
+    <view class="type" >
+      <text class="text-label">{{language['过程']||'过程'}}:</text><text>{{language[detail.content]||detail.content||'--'}}</text>
+    </view>
+    <view class="type" >
+      <text class="text-label">{{language['结果']||'结果'}}:</text><text>{{language[detail.results]||detail.results||'--'}}</text>
+    </view>
+    <view class="type" >
+      <text class="text-label">{{language['下次跟进计划']||'下次跟进计划'}}:</text><text>{{language[detail.nextplan]||detail.nextplan||'--'}}</text>
+    </view>
+  </navigator>
+  <Yl_Files wx:if="{{detail.attinfos.length}}" attinfos='{{detail.attinfos}}' />
+</view>
+<!-- <view style="margin-top: -16rpx;">
+  <Yl_Detail list="{{briefs}}">
+    <view>{{detail.taskdate}}</view>
+  </Yl_Detail>
+</view> -->
+<view style="height: 20rpx;" />
+<!-- 功能 -->
+<Yl_FunTabs list='{{tabsList}}' active='{{tabsActive}}' bind:onChenge="tabsChange">
+  <Task slot='关联任务' id="Task"></Task>
+  <Record slot="操作" id="Record" ownertable='sys_task' ownerid='{{sys_taskid}}' />
+  <Files slot="附件" id="Files" ownertable='sys_task' ownerid='{{sys_taskid}}' disabled="{{detail.status != '已终止'}}" />
+</Yl_FunTabs>
+<view style="height: 80rpx;" />
+<!-- 底部 -->
+<Yl_Tabbar wx:if="{{tabbarList.length}}" list='{{tabbarList}}' bind:callback="tabbarOnClick" />
+<wxs src='../../../utils/wxmlQueryPer.wxs' module="per" />

+ 28 - 21
prsx/calendar/index.js

@@ -27,8 +27,8 @@ Page({
       name: '新建跟进',
     }],
     actionShow: false,
-    canlendar_name:'我',
-    showFiltrate:false
+    canlendar_name: '我',
+    showFiltrate: false
   },
 
   onLoad() {
@@ -254,14 +254,14 @@ Page({
 
   // 点击日期
   onDayTap(e) {
-    const fullDate =  e.currentTarget.dataset.date;
+    const fullDate = e.currentTarget.dataset.date;
     this.setData({
       selectedDate: fullDate
     });
     // 重新渲染以更新 isSelected
     this.renderCalendar(this.data.currentYear, this.data.currentMonth);
   },
-  onShow(){
+  onShow() {
     this.prevData()
   },
   goToday() {
@@ -295,11 +295,15 @@ Page({
   selectType({
     detail
   }) {
-    console.log(detail.value,'选择')
-    if (detail.value) {
+    console.log(detail.value, '选择')
+    if (detail.value == '新建任务') {
       wx.navigateTo({
-      url: '/prsx/calendar/task/index?select=' + this.data.selectedDate,
-    })
+        url: '/prsx/calendar/task/index?select=' + this.data.selectedDate,
+      })
+    }else {
+      wx.navigateTo({
+        url: '/prsx/trace/add/index?select=' + this.data.selectedDate + '&ownertable=sys_task',
+      })
     }
     this.onCancel();
   },
@@ -309,31 +313,34 @@ Page({
       actionShow: false
     })
   },
-  filtrateShow() { 
+  filtrateShow() {
     this.setData({
-      showFiltrate:true
+      showFiltrate: true
     })
-    let page = this.selectComponent("#personnel")
+    let page = this.selectComponent("#personnel")
     page.userList()
   },
   handleFilter({
     detail
-  }){
-    console.log('shuchu',detail)
-    let page = this.selectComponent("#personnel")
-    console.log(page.data.result,'555')
-    console.log(page.data.users.active,'输出active')
+  }) {
+    let page = this.selectComponent("#personnel")
     this.setData({
-      canlendar_name:page.data.result.name,
-      userid:page.data.result.userid
+      canlendar_name: page.data.result.name,
+      userid: page.data.result.userid
     })
     this.prevData()
   },
-  taskSelect(item){
-    console.log('选中',item)
+  taskSelect(item) {
     let data = item.currentTarget.dataset.data
     wx.navigateTo({
       url: '/prsx/calendar/task/detail?id=' + data.sys_taskid
-  })
+    })
+  },
+  followSelect(item){
+    console.log(item,'item输出111')
+    let data = item.currentTarget.dataset.data
+    wx.navigateTo({
+      url: '/prsx/calendar/follow/detail?data=' + JSON.stringify(data) + '&id=' + data.sys_datafollowupid + '&followdate=' + data.followdate
+    })
   }
 });

+ 1 - 1
prsx/calendar/index.wxml

@@ -56,7 +56,7 @@
       <view class="section-title">跟进记录</view>
       <view class="section-date">{{ selectedDate }}</view>
     </view>
-    <view wx:for="{{ followData }}" wx:key="id" class="record-item">
+    <view wx:for="{{ followData }}" wx:key="id" class="record-item" data-data="{{ item }}" bindtap="followSelect">
       <text class="record-text">{{ item.followobj == '临床' ? item.hospitalname : item.agentsname }}</text>
     </view>
   </view>

+ 180 - 0
prsx/calendar/task/list.js

@@ -0,0 +1,180 @@
+const _Http = getApp().globalData.http;
+
+Component({
+    properties: {
+        disabled: {
+            type: Boolean,
+            value: true
+        }
+    },
+    options: {
+        addGlobalClass: true
+    },
+    data: {
+        sat_campaignid: 0,
+        content: {
+            nocache: true,
+            pageNumber: 1,
+            pageSize: 10,
+            pageTotal: 1,
+            total: null,
+            where: {
+                condition: ""
+            }
+        },
+        list: [],
+        showSearch: false,
+        focus: false,
+        condition: "",
+        followdate:''
+    },
+    lifetimes: {
+        attached: function () {
+            getApp().globalData.Language.getLanguagePackage(this)
+        }
+    },
+    methods: {
+        getList(data, init = false,followdate) {
+          console.log(data,'任务输出',followdate)
+          let list = data
+          this.setData({
+            list,
+            followdate:followdate
+          })
+        },
+        insetr() {
+            let params = {
+                "id": 2025103013523102,
+                "content": {
+                    "sat_campaignid": this.data.sat_campaignid,
+                    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) _Http.basic({
+                            "id": 2025103013511502,
+                            "content": {
+                                "sat_campaignid": that.data.sat_campaignid,
+                                "doctors": [{
+                                    "sat_campaign_doctorid": 0,
+                                    "sa_doctorid": item.sa_doctorid,
+                                    "amount": 0
+                                }]
+                            },
+                        }).then(res => {
+                            console.log("添加医生", res)
+                            wx.showToast({
+                                title: res.code == 1 ? '添加成功' : res.data,
+                                icon: 'none',
+                                mask:res.code == 1
+                            })
+                            if (res.code == 1) {
+                                that.getList("", true)
+                                getCurrentPages().find(v => v.__route__ == 'prsx/select/docter/index').uploadList()
+                                wx.navigateBack()
+                            }
+                        })
+
+                    }
+                })
+
+                console.log(item)
+            }.bind(this)
+        },
+        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)
+        },
+        deleteItem(e) {
+            const {
+                item
+            } = e.currentTarget.dataset,
+                that = this;
+            wx.showModal({
+                content: `是否确定删除“${item.doctorname}”`,
+                complete: ({
+                    confirm
+                }) => {
+                    if (confirm) _Http.basic({
+                        "id": 2025103013514902,
+                        "content": {
+                            "sat_campaignid": that.data.sat_campaignid,
+                            "sa_doctorid": [item.sa_doctorid]
+                        },
+                    }).then(res => {
+                        console.log("添加医生", res)
+                        wx.showToast({
+                            title: res.code == 1 ? '删除成功' : res.data,
+                            icon: 'none'
+                        })
+                        if (res.code == 1) {
+                            that.getList("", true)
+                            getCurrentPages().find(v => v.__route__ == 'prsx/activity/detail').getDetail()
+                        }
+                    })
+                }
+            })
+        },
+        changeAmount(e) {
+            let value = e.detail.value,
+                index = e.currentTarget.dataset.index;
+            this.data.list[index].amount = value;
+            _Http.basic({
+                "id": 2025103013511502,
+                "content": {
+                    "sat_campaignid": this.data.sat_campaignid,
+                    doctors: this.data.list
+                }
+            }).then(res => {
+                console.log("修改金额", res)
+                wx.showToast({
+                    title: res.code == 1 ? '修改成功' : res.msg,
+                    icon: "none"
+                })
+                if (res.code == 1) getCurrentPages().find(v => v.__route__ == 'prsx/activity/detail').getDetail()
+            })
+        }
+    }
+})

+ 4 - 0
prsx/calendar/task/list.json

@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}

+ 131 - 0
prsx/calendar/task/list.scss

@@ -0,0 +1,131 @@
+.head {
+	display: flex;
+	align-items: center;
+	width: 100vw;
+	height: 120rpx;
+	padding: 0 20rpx 0 30rpx;
+	box-sizing: border-box;
+
+	.count {
+		font-size: 28rpx;
+		font-family: PingFang SC-Regular, PingFang SC;
+		color: #333333;
+	}
+
+	.expand {
+		flex: 1;
+		display: flex;
+		align-items: center;
+		justify-content: flex-end;
+
+		.but {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			flex-shrink: 0;
+			width: 80rpx;
+			height: 80rpx;
+			background: #FFFFFF;
+			border-radius: 8rpx;
+			border: 2rpx solid #CCCCCC;
+			margin-left: 20rpx;
+			color: #666666;
+		}
+	}
+}
+
+.custom-class {
+	--search-background-color: #fff !important;
+	padding-right: 10rpx !important;
+}
+
+.project-item {
+	display: flex;
+	align-items: center;
+	background-color: #fff;
+	width: 690rpx;
+	border-radius: 8rpx;
+	margin: 0 auto 20rpx;
+	padding: 20rpx 30rpx;
+	box-sizing: border-box;
+
+	.main {
+		position: relative;
+		overflow: hidden;
+		width: 100%;
+
+		.iconfont-box {
+			position: absolute;
+			top: -20rpx;
+			right: -30rpx;
+			padding: 30rpx;
+			color: #B5B5B5;
+			border-radius: 8rpx;
+		}
+
+		.label {
+			font-size: 30rpx;
+			font-family: PingFang SC-Regular, PingFang SC;
+			color: #333333;
+		}
+
+		.tag-box {
+			display: flex;
+			align-items: center;
+			width: 100%;
+
+			.datatag,
+			.systemtag {
+				flex-shrink: 0;
+				margin-top: 6rpx;
+				background: #3874f6;
+				color: #ffffff;
+				margin-right: 10rpx;
+				display: flex;
+				align-items: center;
+				height: 40rpx;
+				font-size: 20rpx;
+				padding: 0 10rpx;
+				border-radius: 20rpx;
+				font-family: PingFang SC-Regular, PingFang SC;
+			}
+
+			.datatag {
+				background: #FA8C16;
+			}
+		}
+
+		.replenish {
+			display: flex;
+			min-height: 34rpx;
+			font-size: 24rpx;
+			font-family: PingFang SC-Regular, PingFang SC;
+			color: #333333;
+			margin-top: 8rpx;
+			word-break: break-all;
+			white-space: pre-wrap;
+		}
+
+		.bottom {
+			display: flex;
+			align-items: center;
+			height: 58rpx;
+			font-family: PingFang SC, PingFang SC;
+			font-size: 24rpx;
+			color: #333333;
+			width: 100%;
+			margin-top: 8rpx;
+			padding-bottom: 2rpx;
+
+			input {
+				width: 400rpx;
+				height: 58rpx;
+				background: #FFFFFF;
+				border-radius: 8rpx;
+				border: 1rpx solid #CCCCCC;
+				padding-left: 20rpx;
+			}
+
+		}
+	}
+}

+ 28 - 0
prsx/calendar/task/list.wxml

@@ -0,0 +1,28 @@
+<view class="head">
+	<view class="count">
+		关联任务
+	</view>
+	<view class="expand">
+		<van-search wx:if="{{showSearch}}" custom-class='custom-class' focus='{{focus}}' value="{{ condition }}"
+			shape="round" bind:change='onChange' bind:search='onSearch' bind:clear='onSearch' placeholder="搜索关键词"
+			background='#F4F5F7' />
+		<navigator url="#" class="but" bindtap="toSearch">
+			<van-icon name="search" />
+		</navigator>
+	</view>
+</view>
+
+<view class="project-item"  wx:key="sa_doctorid">
+	<view class="main">
+		<view class="label" style="font-weight: bold;">
+			{{list.tasktitle}}
+		</view>
+		<view class="replenish">
+			<text style="margin-top: 10rpx;margin-bottom: 10rpx;color: #b5b5b5;">{{followdate}}</text>
+		</view>
+		<view class="replenish">
+			<text style="font-size: 28rpx;">{{list.taskcontenttext || ''}}</text>
+		</view>
+	</view>
+</view>
+<My_empty wx:if="{{list.length==0}}" />

+ 1 - 1
prsx/contract/detail.wxml

@@ -17,7 +17,7 @@
 <!-- 功能 -->
 <Yl_FunTabs list='{{tabsList}}' active='{{tabsActive}}' bind:onChenge="tabsChange">
     <Preview slot='详细信息' list1='{{list1}}' list2='{{list2}}' />
-    <Trace resource='合同管理' slot='跟进动态' id='Trace' ownertable='sa_contract' ownerid='{{sys_enterpriseid}}' disabled="{{detail.status != '已终止'}}" ownerid1='{{detail.sa_contractid}}' />
+    <Trace resource='经销商协议' slot='跟进动态' id='Trace' ownertable='sa_contract' ownerid='{{sys_enterpriseid}}' disabled="{{detail.status != '已终止'}}" ownerid1='{{detail.sa_contractid}}' />
     <Record slot="操作" id="Record" ownertable='sa_contract' ownerid='{{sa_contractid}}' />
     <Files slot="附件" id="Files" ownertable='sa_contract' ownerid='{{sa_contractid}}' disabled="{{detail.status != '已终止'}}" />
 </Yl_FunTabs>

+ 6 - 3
prsx/contract/float/index.js

@@ -18,9 +18,12 @@ Component({
     methods: {
         /* 挑选新增合作协议类型 */
         onSelect() {
-            this.setData({
-                actionShow: true
-            })
+          wx.navigateTo({
+            url: '/prsx/contract/insert?type=' + '经销商协议',
+        })
+            // this.setData({
+            //     actionShow: true
+            // })
         },
         /* 选择合作协议类型 */
         selectType({

+ 1 - 1
prsx/contract/index.json

@@ -2,5 +2,5 @@
     "usingComponents": {
         "float": "./float/index"
     },
-    "navigationBarTitleText": "合同管理"
+    "navigationBarTitleText": "经销商协议"
 }

+ 37 - 35
prsx/contract/insert.js

@@ -69,41 +69,43 @@ Page({
             valueName: "enddate",
             checking: "base",
             required: true,
-        }, {
-            label: "履约保证金",
-            error: false,
-            errMsg: "",
-            type: "option",
-            optionNmae: "contractbond",
-            optionType: "radio", //复选   radio 单选
-            value: "",
-            placeholder: "履约保证金",
-            valueName: "earnestmoney",
-            checking: "base",
-            required: true
-        }, {
-            label: "货款支付",
-            error: false,
-            errMsg: "",
-            type: "option",
-            optionNmae: "deliverymode",
-            optionType: "radio", //复选   radio 单选
-            value: "",
-            placeholder: "货款支付",
-            valueName: "payment",
-            checking: "base",
-            required: true
-        }, {
-            label: "奖励政策",
-            error: false,
-            errMsg: "",
-            type: "textarea",
-            value: "",
-            placeholder: "奖励政策",
-            valueName: "reward",
-            checking: "base",
-            required: true
-        }, {
+        }, 
+        // {
+        //     label: "履约保证金",
+        //     error: false,
+        //     errMsg: "",
+        //     type: "option",
+        //     optionNmae: "contractbond",
+        //     optionType: "radio", //复选   radio 单选
+        //     value: "",
+        //     placeholder: "履约保证金",
+        //     valueName: "earnestmoney",
+        //     checking: "base",
+        //     required: true
+        // }, {
+        //     label: "货款支付",
+        //     error: false,
+        //     errMsg: "",
+        //     type: "option",
+        //     optionNmae: "deliverymode",
+        //     optionType: "radio", //复选   radio 单选
+        //     value: "",
+        //     placeholder: "货款支付",
+        //     valueName: "payment",
+        //     checking: "base",
+        //     required: true
+        // }, {
+        //     label: "奖励政策",
+        //     error: false,
+        //     errMsg: "",
+        //     type: "textarea",
+        //     value: "",
+        //     placeholder: "奖励政策",
+        //     valueName: "reward",
+        //     checking: "base",
+        //     required: true
+        // }, 
+        {
             label: "年目标手术量",
             error: false,
             errMsg: "",

+ 8 - 0
prsx/dealer/Department/index.wxml

@@ -50,6 +50,14 @@
       <text style="color: #666;">负责人:</text>
       <text>{{item.leader[0].name}}</text>
     </view>
+    <view class="replenish">
+      <text style="color: #666;">科室床位:</text>
+      <text>{{item.bedcount}}</text>
+    </view>
+    <view class="replenish">
+      <text style="color: #666;">医生数量:</text>
+      <text>{{item.doctorcount}}</text>
+    </view>
     <view class="replenish">
       <text style="color: #666;">备注:</text>
       <text>{{item.remarks || '--'}}</text>

+ 13 - 1
prsx/department/detail.js

@@ -98,7 +98,13 @@ Page({
         }, {
             label: "开发阶段",
             value: res.data.stagename
-        }, ];
+        },{
+          label: "科室床位",
+          value: res.data.bedcount == 0?'0':res.data.bedcount
+      }, {
+          label: "医生数量",
+          value: res.data.doctorcount == 0?'0':res.data.doctorcount
+      } ];
 
         /* 基本信息 */
         let list1 = [{
@@ -117,6 +123,12 @@ Page({
             label: "科室负责人",
             value: res.data.doctors
         }, {
+          label: "科室床位",
+          value: res.data.bedcount == 0?'0':res.data.bedcount
+      }, {
+          label: "医生数量",
+          value: res.data.doctorcount == 0?'0':res.data.doctorcount
+      },{
             label: "备注",
             value: res.data.remarks
         }, {

+ 1 - 0
prsx/department/detail.wxml

@@ -24,6 +24,7 @@
     <Record slot="操作" id="Record" ownertable='sa_hospitaldep' ownerid='{{sa_hospitaldepid}}' />
     <Files slot="附件" id="Files" ownertable='sa_hospitaldep' ownerid='{{sa_hospitaldepid}}' disabled="{{detail.status != '已终止'}}" />
 </Yl_FunTabs>
+<view style="height: 70rpx;" />
 <!-- 底部 -->
 <Yl_Tabbar wx:if="{{tabbarList.length}}" list='{{tabbarList}}' bind:callback="tabbarOnClick" />
 <wxs src='../../utils/wxmlQueryPer.wxs' module="per" />

+ 20 - 0
prsx/department/insert.js

@@ -61,6 +61,26 @@ Page({
             query: "&radio=true",
             required: true
         }, {
+          label: "科室床位",
+          error: false,
+          errMsg: "",
+          type: "textarea",
+          value: "",
+          placeholder: "请输入科室床位数量",
+          valueName: "bedcount",
+          checking: "base",
+          required: true
+      },{
+        label: "医生数量",
+        error: false,
+        errMsg: "",
+        type: "textarea",
+        value: "",
+        placeholder: "请输入医生数量",
+        valueName: "doctorcount",
+        checking: "base",
+        required: true
+    },{
             label: "备注",
             error: false,
             errMsg: "",

+ 8 - 0
prsx/hospital/Department/index.wxml

@@ -47,6 +47,14 @@
 			<text style="color: #666;">负责人:</text>
 			<text>{{item.leader[0].name}}</text>
 		</view>
+    <view class="replenish">
+      <text style="color: #666;">科室床位:</text>
+      <text>{{item.bedcount}}</text>
+    </view>
+    <view class="replenish">
+      <text style="color: #666;">医生数量:</text>
+      <text>{{item.doctorcount}}</text>
+    </view>
 		<view class="replenish">
 			<text style="color: #666;">备注:</text>
 			<text>{{item.remarks || '--'}}</text>

+ 10 - 12
prsx/hospital/Surgery/update.js

@@ -55,15 +55,15 @@ Page({
         interrupt: true
       },
       {
-        label: "医生",
+        label: "科室",
         id: 1,
         error: false,
         errMsg: "",
         type: "route",
-        url: "/prsx/select/docter/index",
+        url: "/prsx/select/department/index",
         value: '',
-        placeholder: "医生",
-        valueName: "sa_doctorid",
+        placeholder: "科室",
+        valueName: "sa_hospitaldepid",
         checking: "base",
         required: true,
         params: {
@@ -75,11 +75,10 @@ Page({
               "condition": ""
             }
           },
-          "id": 2025102310134602,
+          "id": 2025102310143002,
         },
         query: "&radio=true",
         interrupt: true,
-        required: false
       }
     ]
     this.setData({
@@ -128,7 +127,6 @@ Page({
       qty: '',
       rowindex: 1,
       sa_customersid: this.data.sa_customersid,
-      sa_doctorid: '',
       sa_hospitaldepid: '',
       sa_surgeryforecast_itemsid: 0,
       sa_surgeryforecastid: this.data.content.sa_surgeryforecastid,
@@ -168,8 +166,8 @@ Page({
       temporary
     } = e.detail;
  
-    if (temporary.item.label == '医生') {
-      form.find(v => v.label == '医生').value = data.value;
+    if (temporary.item.label == '科室') {
+      form.find(v => v.label == '科室').value = data.value;
       wx.navigateBack()
     }
     this.selectComponent("#Form").confirm();
@@ -262,7 +260,7 @@ Page({
       })
       let data = this.selectComponent("#Form").submit(),
         content = this.data.content
-      data.sa_doctorid = data.sa_doctorid.length ? data.sa_doctorid[1][0] : 0
+      data.sa_hospitaldepid = data.sa_hospitaldepid.length ? data.sa_hospitaldepid[1][0] : 0
       _Http.basic({
         "id": 2025111315454902,
         "content": {
@@ -320,8 +318,8 @@ Page({
       oldQty:data.qty
     })
     let form = this.data.formData.map(v => {
-      if (v.valueName == 'sa_doctorid') {
-        v.value = [data.doctorname, [data.sa_doctorid]]
+      if (v.valueName == 'sa_hospitaldepid') {
+        v.value = [data.hospitaldepname, [data.sa_hospitaldepid]]
       } else {
         v.value = data[v.valueName] || "";
       }

+ 2 - 2
prsx/hospital/Surgery/update.wxml

@@ -36,8 +36,8 @@
         <text style="color: #3874F6;">{{item.qty || 0}}</text>
       </view>
       <view class="replenish">
-        <text style="color: #666;">医生:</text>
-        <text>{{item.doctorname || '--'}}</text>
+        <text style="color: #666;">科室:</text>
+        <text>{{item.hospitaldepname || '--'}}</text>
       </view>
     </view>
     <view class="iconfont-box {{disabled ? 'grey' : 'orange'}}" wx:if="{{nowIndex == item.rowindex}}" data-item="{{item}}" bind:tap="submit">

+ 0 - 3
prsx/hospital/detail.js

@@ -132,9 +132,6 @@ Page({
     }, {
       label: "手术间",
       value: res.data.room
-    }, {
-      label: "主机数量",
-      value: res.data.host
     }, {
       label: "负责人",
       value: res.data.leader.length ? res.data.leader[0].name : ""

+ 0 - 10
prsx/hospital/insert.js

@@ -130,16 +130,6 @@ Page({
                 valueName: "room",
                 checking: "base",
                 required: false
-            }, {
-                label: "主机数量",
-                error: false,
-                errMsg: "",
-                type: "number",
-                value: "",
-                placeholder: "主机数量",
-                valueName: "host",
-                checking: "base",
-                required: false
             }],
             hrid = '';
         if (options.data) {

+ 5 - 3
prsx/orderForm/add/add.js

@@ -152,7 +152,7 @@ Page({
         "content": {
           "pageSize": 20,
           "pageNumber": 1,
-          "sa_customersid": 0,
+          "sa_hospitaldepid": 0,
           "where": {
             "condition": ""
           }
@@ -274,9 +274,7 @@ Page({
       }];
 
       let obj2 = form.find(v => v.label == '经销商')
-      obj2.params.content.sa_customersid = data.id[0];
       obj2.value = '';
-      obj2.disabled = false;
 
       let obj3 = form.find(v => v.label == '科室')
       obj3.params.content.sa_customersid = data.id[0];
@@ -310,6 +308,10 @@ Page({
       wx.navigateBack()
     } else if (temporary.item.label == '科室') {
       form.find(v => v.label == '科室').value = data.value;
+      let obj2 = form.find(v => v.label == '经销商')
+      obj2.params.content.sa_hospitaldepid = data.id[0];
+      obj2.value = ''
+      obj2.disabled = false
       wx.navigateBack()
     }
     this.selectComponent("#Form").confirm();

+ 106 - 52
prsx/trace/add/index.js

@@ -5,6 +5,7 @@ Page({
     showAll: false,
     special: false,
     disabled: true,
+    isBack: false,
     list: [{
       label: "跟进内容",
       key: "content",
@@ -13,21 +14,26 @@ Page({
     content: {
 
     },
+    form: {}
   },
   onLoad(options) {
     getApp().globalData.Language.getLanguagePackage(this, '跟进');
     console.log(options, 'options********')
+
     if (options.ownertable) {
       this.setData({
         ...options
       })
     };
+
     if (options.ownertable == 'sys_task') {
       this.setData({
-        special: true
+        special: true,
+        isBack: options.isBack
       })
       this.formSet()
     }
+
     //编辑获取原信息,新建初始化模板
     if (options.sys_datafollowupid) {
       _Http.basic({
@@ -50,12 +56,12 @@ Page({
           let data = res.data;
           data.sys_taskid = [data.tasktitle, [data.sys_taskid]]
           if (res.data.followobj == '临床') {
-            data.sa_customersid = [data.hospitalname,[data.sa_customersid]]
-            data.sa_doctorid = [data.doctorname,[data.sa_doctorid]]
-            data.sa_hospitaldepid = [data.hospitaldepname,[data.sa_hospitaldepid]]
+            data.sa_customersid = [data.hospitalname, [data.sa_customersid]]
+            data.sa_doctorid = [data.doctorname, [data.sa_doctorid]]
+            data.sa_hospitaldepid = [data.hospitaldepname, [data.sa_hospitaldepid]]
             this.formSetNew(res.data.followobj)
-          }else {
-            data.sa_agentsid = [data.agentsname,[data.sa_agentsid]]
+          } else {
+            data.sa_agentsid = [data.agentsname, [data.sa_agentsid]]
             this.formSetNew(res.data.followobj)
           }
           let form = this.data.form.map(v => {
@@ -69,7 +75,6 @@ Page({
             k.value = data[k.key]
             return k
           })
-          console.log(form, 'form的数据')
           this.setData({
             form,
             list,
@@ -167,6 +172,7 @@ Page({
       key: "nextplan",
       value: "",
     }]
+
     this.setData({
       form,
       list
@@ -174,12 +180,7 @@ Page({
   },
 
   formSetNew(followobj) {
-    console.log(followobj,'新的对象')
     if (followobj == '临床') {
-      const existingJxsIndex = this.data.form.findIndex(item => item.label === "经销商");
-      if (existingJxsIndex !== -1) {
-        this.data.form.splice(existingJxsIndex, 1);
-      }
       let lcForm = [{
         label: "医院",
         error: false,
@@ -202,6 +203,7 @@ Page({
           "id": 2025101409411402,
         },
         query: "&radio=true",
+        interrupt: true,
       }, {
         label: "医生",
         error: false,
@@ -225,7 +227,8 @@ Page({
           "id": 2025102310134602,
         },
         query: "&radio=true",
-        disabled: true
+        disabled: true,
+        interrupt: true,
       }, {
         label: "科室",
         error: false,
@@ -237,34 +240,18 @@ Page({
         checking: "base",
         required: false,
         query: "&radio=true",
-        disabled: true
+        disabled: true,
+        interrupt: true,
       }]
       const followObjectIndex = this.data.form.findIndex(item => item.label === "跟进对象");
       if (followObjectIndex !== -1) {
         this.data.form.splice(followObjectIndex + 1, 0, ...lcForm);
       }
-      this.setData({
-        form: this.data.form
-      })
-    } else {
-      console.log('删除医院内容')
-      const existingYyIndex = this.data.form.findIndex(item => item.label === "医院");
-      if (existingYyIndex !== -1) {
-        console.log(existingYyIndex,'执行进行删除')
-        this.data.form.splice(existingYyIndex, 3);
-        console.log(this.data.form,'输出')
-        this.setData({
-          form: this.data.form
-        })
+      const existingJxsIndex = this.data.form.findIndex(item => item.label === "经销商");
+      if (existingJxsIndex !== -1) {
+        this.data.form.splice(existingJxsIndex, 1);
       }
-      // const existingYsIndex = this.data.form.findIndex(item => item.label === "医生");
-      // if (existingYsIndex !== -1) {
-      //   this.data.form.splice(existingYsIndex, 1);
-      // }
-      // const existingKsIndex = this.data.form.findIndex(item => item.label === "科室");
-      // if (existingKsIndex !== -1) {
-      //   this.data.form.splice(existingKsIndex, 1);
-      // }
+    } else {
       let jxsForm = [{
         label: "经销商",
         error: false,
@@ -287,21 +274,21 @@ Page({
           "id": 2025123116453802,
         },
         query: "&radio=true",
+        interrupt: true
       }]
       const followObjectJxsIndex = this.data.form.findIndex(item => item.label === "跟进对象");
       if (followObjectJxsIndex !== -1) {
         this.data.form.splice(followObjectJxsIndex + 1, 0, ...jxsForm);
-        console.log('1111',this.data.form)
+      }
+      const existingYyIndex = this.data.form.findIndex(item => item.label === "医院");
+      if (existingYyIndex !== -1) {
+        this.data.form.splice(existingYyIndex, 3);
 
-        this.setData({
-          form: this.data.form
-        })
       }
-      this.setData({
-        form: this.data.form
-      })
     }
-   
+    this.setData({
+      form: this.data.form
+    })
   },
   interrupt(e) {
     console.log(e, 'e的数据初始')
@@ -311,12 +298,37 @@ Page({
       temporary
     } = e.detail;
     console.log(data, form, temporary)
+    if (temporary.item.label == '医院') {
+      form.find(v => v.label == '医院').value = data.value;
+      let obj2 = form.find(v => v.label == '医生')
+      obj2.params.content.sa_customersid = data.id[0];
+      obj2.value = '';
+      obj2.disabled = false;
+      let obj3 = form.find(v => v.label == '科室')
+      obj3.value = '';
+      wx.navigateBack()
+    }else if (temporary.item.label == '医生'){
+      form.find(v => v.label == '医生').value = data.value;
+      let obj2 = form.find(v => v.label == '科室')
+      obj2.value = [data.item.hospitaldepname, [data.item.sa_hospitaldepid]];
+      wx.navigateBack()
+    }else if (temporary.item.label == '经销商'){
+      form.find(v => v.label == '经销商').value = data.value;
+      wx.navigateBack()
+    }
+    this.selectComponent("#Form").confirm();
+    this.setData({
+      form
+    })
     if (temporary.item.label == '跟进对象') {
+      form.find(v => v.label == '跟进对象').value = data.value;
       this.formSetNew(data.value)
-    }
+    } 
+    this.selectComponent("#Form").confirm();
     this.setData({
       form
-  })
+    })
+  
   },
   /* 表单必填项是否完成 */
   onConfirm({
@@ -395,7 +407,14 @@ Page({
             attachmentids
           }
         })
-        this.changeItem(data)
+        if (this.data.isBack) {
+          this.setData({
+            isBack: false
+          })
+          this.changeItemNew(data)
+        } else {
+          this.changeItem(data)
+        }
         setTimeout(() => {
           wx.navigateBack()
         }, 500)
@@ -427,21 +446,46 @@ Page({
 
     }
   },
+  changeItemNew(data) {
+    this.setData({
+      loading: false
+    })
+    let page = getCurrentPages()[getCurrentPages().length - 2],
+      isDetail = page.__route__ == 'prsx/calendar/follow/detail';
+    if (isDetail) {
+      page.getDetail();
+      page = getCurrentPages()[getCurrentPages().length - 3];
+    }
+  },
   submit() {
     this.setData({
       loading: true
     })
     let content = Object.assign(this.data.content, this.selectComponent("#Form").submit())
-    content.content = this.data.list[0].value;
     content.resource = this.data.resource || ''
+
+    if (this.data.special) {
+      content.target = this.data.list.find(v => v.label == '目的').value
+      content.content = this.data.list.find(v => v.label == '过程').value
+      content.results = this.data.list.find(v => v.label == '结果').value
+      content.nextplan = this.data.list.find(v => v.label == '下次跟进计划').value
+      content.sa_customersid = content.sa_customersid.length ? content.sa_customersid[1][0] : 0
+      content.sa_doctorid = content.sa_doctorid.length ? content.sa_doctorid[1][0] : 0
+      content.sa_hospitaldepid = content.sa_hospitaldepid.length ? content.sa_hospitaldepid[1][0] : 0
+      content.sys_taskid = content.sys_taskid.length ? content.sys_taskid[1][0] : 0
+      content.sa_agentsid = content.sa_agentsid.length ? content.sa_agentsid[1][0] : 0
+    } else {
+      content.content = this.data.list[0].value;
+    }
+
     _Http.basic({
       "id": 20220930121601,
       content
     }).then(res => {
       console.log("保存跟进内容", res)
-      this.setData({
-        loading: false
-      })
+      // this.setData({
+      //   loading: false
+      // })
       wx.showToast({
         title: getApp().globalData.Language.getMapText(res.code != 1 ? res.msg : content.sys_datafollowupid == 0 ? '保存成功' : '修改成功'),
         icon: "none",
@@ -450,11 +494,21 @@ Page({
       if (res.msg != '成功') return;
       let attachmentids = this.selectComponent("#Yl_files").getFiles().attachmentids;
       if (attachmentids.length) return this.handleFileLink(attachmentids, 'sys_datafollowup', res.data.sys_datafollowupid, res.data);
-      this.changeItem(res.data)
+      if (this.data.isBack) {
+        this.setData({
+          isBack: false
+        })
+        this.changeItemNew(res.data)
+      } else {
+        this.changeItem(res.data)
+      }
       setTimeout(() => {
+        this.setData({
+          special: false
+        })
         wx.navigateBack()
       }, 500)
-      getCurrentPages().find(v => v.route == 'prsx/hospital/detail').getDetail();
+      // getCurrentPages().find(v => v.route == 'prsx/hospital/detail').getDetail();
     })
   },
   onUnload() {

+ 72 - 72
prsx/trace/list/index.wxml

@@ -1,79 +1,79 @@
 <view class="trace-box" wx:for="{{list}}" wx:key="sys_datafollowupid">
-    <navigator url="#" class="item" data-item="{{item}}" bindtap="toDetail">
-        <view wx:if="{{item.resource}}" class="resource"> {{language[item.resource]||item.resource}}</view>
-        <view class="createdate">
-            {{item.createdate}}
-        </view>
-        <view class="user">
-            <image class="portrait" wx:if="{{item.headpic}}" src="{{item.headpic}}" mode="aspectFill" lazy-load />
-            <view class="portrait" style="background-color: #3874F6;" wx:else>
-                {{language[item.createby[0]]||item.createby[0]}}
-            </view>
-            <view class="content">
-                <view class="label">
-                    {{language[item.createby]||item.createby}}
-                </view>
-                <view class="exp">
-                    <text style="margin-right:50rpx;">{{language['部门']||'部门'}}:{{item.userextend[0].depname||' --'}}</text>
-                    <text>{{language['职位']||'职位'}}:{{item.userextend[0].position||' --'}}</text>
-                </view>
-            </view>
-        </view>
-        <view class="text" wx:if="{{ownertable != 'sa_customers' && ownertable != 'sa_doctor' && ownertable != 'sa_hospitaldep' && ownertable != 'sa_agents' && ownertable != 'sys_task'}}">
-            <text class="text-label">{{language['跟进内容']||'跟进内容'}}:</text>{{language[item.content]||item.content}}
-        </view>
-        <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
-            <text class="text-label">{{language['跟进对象']||'跟进对象'}}:</text><text>{{language[item.followobj]||item.followobj}}</text>
-        </view>
-        <view class="type" wx:if="{{item.hospitalname}}">
-            <text class="text-label">{{language['医院']||'医院'}}:</text><text>{{language[item.hospitalname]||item.hospitalname}}</text>
-        </view>
-        <view class="type" wx:if="{{item.hospitaldepname}}">
-            <text class="text-label">{{language['科室']||'科室'}}:</text><text>{{language[item.hospitaldepname]||item.hospitaldepname}}</text>
-        </view>
-        <view class="type" wx:if="{{item.doctorname}}">
-            <text class="text-label">{{language['医生']||'医生'}}:</text><text>{{language[item.doctorname]||item.doctorname}}</text>
-        </view>
-        <view class="type" wx:if="{{item.agentsname}}">
-            <text class="text-label">{{language['经销商']||'经销商'}}:</text><text>{{language[item.agentsname]||item.agentsname}}</text>
-        </view>
-        <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
-            <text class="text-label">{{language['跟进类型']||'跟进类型'}}:</text><text>{{language[item.type]||item.type}}</text>
-        </view>
-        <view class="type" wx:if="{{item.products}}">
-            <text class="text-label">{{language['关联任务']||'关联任务'}}:</text><text>{{language[item.tasktitle]||item.tasktitle}}</text>
-        </view>
-        <view class="type" wx:if="{{item.products}}">
-            <text class="text-label">{{language['推荐产品']||'推荐产品'}}:</text><text>{{language[item.products]||item.products}}</text>
-        </view>
-        <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
-            <text class="text-label">{{language['目的']||'目的'}}:</text><text>{{language[item.target]||item.target||'--'}}</text>
-        </view>
-        <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
-            <text class="text-label">{{language['过程']||'过程'}}:</text><text>{{language[item.content]||item.content||'--'}}</text>
-        </view>
-        <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
-            <text class="text-label">{{language['结果']||'结果'}}:</text><text>{{language[item.results]||item.results||'--'}}</text>
+  <navigator url="#" class="item" data-item="{{item}}" bindtap="toDetail">
+    <view wx:if="{{item.resource}}" class="resource"> {{language[item.resource]||item.resource}}</view>
+    <view class="createdate">
+      {{item.createdate}}
+    </view>
+    <view class="user">
+      <image class="portrait" wx:if="{{item.headpic}}" src="{{item.headpic}}" mode="aspectFill" lazy-load />
+      <view class="portrait" style="background-color: #3874F6;" wx:else>
+        {{language[item.createby[0]]||item.createby[0]}}
+      </view>
+      <view class="content">
+        <view class="label">
+          {{language[item.createby]||item.createby}}
         </view>
-        <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
-            <text class="text-label">{{language['下次跟进计划']||'下次跟进计划'}}:</text><text>{{language[item.nextplan]||item.nextplan||'--'}}</text>
+        <view class="exp">
+          <text style="margin-right:50rpx;">{{language['部门']||'部门'}}:{{item.userextend[0].depname||' --'}}</text>
+          <text>{{language['职位']||'职位'}}:{{item.userextend[0].position||' --'}}</text>
         </view>
-    </navigator>
-    <Yl_Files wx:if="{{item.attinfos.length}}" attinfos='{{item.attinfos}}' />
-    <commentList id="Comment{{item.sys_datafollowupid}}" comments='{{item.comment}}' quantity="{{item.commentqty}}" ownerid='{{item.sys_datafollowupid}}' bind:updateCommentList='updateCommentList' />
-    <view class="bottom">
-        <!-- <navigator url="#" class="comment" bind:tap="comment" id="Comment{{item.sys_datafollowupid}}">
+      </view>
+    </view>
+    <view class="text" wx:if="{{ownertable != 'sa_customers' && ownertable != 'sa_doctor' && ownertable != 'sa_hospitaldep' && ownertable != 'sa_agents' && ownertable != 'sys_task'}}">
+      <text class="text-label">{{language['跟进内容']||'跟进内容'}}:</text>{{language[item.content]||item.content}}
+    </view>
+    <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
+      <text class="text-label">{{language['跟进对象']||'跟进对象'}}:</text><text>{{language[item.followobj]||item.followobj}}</text>
+    </view>
+    <view class="type" wx:if="{{item.hospitalname}}">
+      <text class="text-label">{{language['医院']||'医院'}}:</text><text>{{language[item.hospitalname]||item.hospitalname}}</text>
+    </view>
+    <view class="type" wx:if="{{item.hospitaldepname}}">
+      <text class="text-label">{{language['科室']||'科室'}}:</text><text>{{language[item.hospitaldepname]||item.hospitaldepname}}</text>
+    </view>
+    <view class="type" wx:if="{{item.doctorname}}">
+      <text class="text-label">{{language['医生']||'医生'}}:</text><text>{{language[item.doctorname]||item.doctorname}}</text>
+    </view>
+    <view class="type" wx:if="{{item.agentsname}}">
+      <text class="text-label">{{language['经销商']||'经销商'}}:</text><text>{{language[item.agentsname]||item.agentsname}}</text>
+    </view>
+    <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
+      <text class="text-label">{{language['跟进类型']||'跟进类型'}}:</text><text>{{language[item.type]||item.type}}</text>
+    </view>
+    <view class="type" wx:if="{{item.tasktitle}}">
+      <text class="text-label">{{language['关联任务']||'关联任务'}}:</text><text>{{language[item.tasktitle]||item.tasktitle}}</text>
+    </view>
+    <view class="type" wx:if="{{item.products}}">
+      <text class="text-label">{{language['推荐产品']||'推荐产品'}}:</text><text>{{language[item.products]||item.products}}</text>
+    </view>
+    <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
+      <text class="text-label">{{language['目的']||'目的'}}:</text><text>{{language[item.target]||item.target||'--'}}</text>
+    </view>
+    <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
+      <text class="text-label">{{language['过程']||'过程'}}:</text><text>{{language[item.content]||item.content||'--'}}</text>
+    </view>
+    <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
+      <text class="text-label">{{language['结果']||'结果'}}:</text><text>{{language[item.results]||item.results||'--'}}</text>
+    </view>
+    <view class="type" wx:if="{{ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
+      <text class="text-label">{{language['下次跟进计划']||'下次跟进计划'}}:</text><text>{{language[item.nextplan]||item.nextplan||'--'}}</text>
+    </view>
+  </navigator>
+  <Yl_Files wx:if="{{item.attinfos.length}}" attinfos='{{item.attinfos}}' />
+  <commentList id="Comment{{item.sys_datafollowupid}}" comments='{{item.comment}}' quantity="{{item.commentqty}}" ownerid='{{item.sys_datafollowupid}}' bind:updateCommentList='updateCommentList' />
+  <view class="bottom">
+    <!-- <navigator url="#" class="comment" bind:tap="comment" id="Comment{{item.sys_datafollowupid}}">
             <text class="iconfont icon-huifu" /><text style="color: #3874F6;">{{language['评论']||'评论'}}({{item.commentqty}})</text>
         </navigator> -->
-        <view style="flex: 1;" />
-        <block wx:if="{{(disabled  && userid == item.createuserid) || ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
-            <navigator url="#" bindtap="editItem" data-item="{{item}}" wx:if="{{ownertable != 'sa_customers' && ownertable != 'sa_doctor' && ownertable != 'sa_hospitaldep' && ownertable != 'sa_agents'}}">
-                <text class="iconfont icon-bianji" />{{language['编辑']||'编辑'}}
-            </navigator>
-            <navigator url="#" bindtap="deleteItem" data-item="{{item}}" wx:if="{{userid == item.createuserid}}">
-                <text class="iconfont icon-shanchu2" />{{language['删除']||'删除'}}
-            </navigator>
-        </block>
-    </view>
+    <view style="flex: 1;" />
+    <block wx:if="{{(disabled  && userid == item.createuserid) || ownertable == 'sa_customers' || ownertable == 'sa_doctor' || ownertable == 'sa_hospitaldep' || ownertable == 'sa_agents' || ownertable == 'sys_task'}}">
+      <navigator url="#" bindtap="editItem" data-item="{{item}}" wx:if="{{ownertable != 'sa_customers' && ownertable != 'sa_doctor' && ownertable != 'sa_hospitaldep' && ownertable != 'sa_agents'}}">
+        <text class="iconfont icon-bianji" />{{language['编辑']||'编辑'}}
+      </navigator>
+      <navigator url="#" bindtap="deleteItem" data-item="{{item}}" wx:if="{{userid == item.createuserid}}">
+        <text class="iconfont icon-shanchu2" />{{language['删除']||'删除'}}
+      </navigator>
+    </block>
+  </view>
 </view>
 <My_empty wx:if="{{list.length==0}}" />

+ 1 - 1
utils/work/apps.js

@@ -81,7 +81,7 @@ function getcrm() {
     icon: "work-jingxiaoshangguanli",
     objectname: "sa_agents"
   }, {
-    name: "合同管理",
+    name: "经销商协议",
     path: "/prsx/contract/index",
     icon: "work-hetong",
     objectname: "sa_contract"