Browse Source

代理商改造

hurixing 1 year ago
parent
commit
2052216be6

+ 12 - 3
src/api/comboMeal/index.js

@@ -2,9 +2,9 @@ import request from '@/utils/request'
 
 // 列表
 export function selectAll(query) {
-    const { packageType,packageName,status } = query
+    const { packageType,packageName,status,orgCode } = query
   return request({
-    url: `/learn/package/selectAll?packageType=${packageType}&packageName=${packageName}&status=${status}`,
+    url: `/learn/package/selectAll?packageType=${packageType}&packageName=${packageName}&status=${status}&orgCode=${orgCode}`,
     method: 'post',
     data: query
   })
@@ -41,4 +41,13 @@ export function tencentLearnPackage() {
     method: 'post'
   })
 }
-  
+  
+
+export function list(query) {
+  const { packageType,packageName,status,orgCode } = query
+return request({
+  url: `/learn/package/list?packageType=${packageType}&packageName=${packageName}&status=${status}&orgCode=${orgCode}`,
+  method: 'post',
+  data: query
+})
+}

+ 1 - 1
src/api/patient/index.js

@@ -31,7 +31,7 @@ export function patientEdit(query) {
 // 查询套餐
 export function learnSelectAll(query) {
   return request({
-    url: '/learn/package/selectAll?status=0',
+    url: '/learn/package/selectAll?status=0'+"&orgCode="+query.orgCode,
     method: 'post',
     data: query
   })

+ 8 - 0
src/api/system/dept.js

@@ -73,4 +73,12 @@ export function orgMerchantList(query) {
     method: 'post',
     data: query
   })
+}
+
+
+export function dropDownOrg() {
+  return request({
+    url: '/system/org/drop/down',
+    method: 'post',
+  })
 }

+ 47 - 6
src/views/comboMeal/list/index.vue

@@ -14,6 +14,16 @@
           </el-option>
         </el-select>
       </el-form-item>
+      <el-form-item label="机构" prop="orgCode">
+        <el-select v-model="queryParams.orgCode">
+          <el-option
+            v-for="item in dropDownOrgList"
+            :key="item.orgCode"
+            :label="item.orgName"
+            :value="item.orgCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -87,6 +97,16 @@
         <el-form-item prop="packageDesn" label="套餐描述">
           <el-input v-model.trim="form.packageDesn" placeholder="请输入套餐描述" type="textarea" maxlength="200" />
         </el-form-item>
+        <el-form-item label="机构" prop="orgCode">
+        <el-select v-model="form.orgCode">
+          <el-option
+            v-for="item in dropDownOrgList"
+            :key="item.orgCode"
+            :label="item.orgName"
+            :value="item.orgCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -97,9 +117,10 @@
 </template>
 
 <script>
-import { selectAll, save, del,edit } from '@/api/comboMeal/index'
+import { selectAll, save, del,edit,list } from '@/api/comboMeal/index'
 // import lookDetail from './lookDetail.vue';
 // import trainDetatil from './trainDetatil.vue';
+import {dropDownOrg} from '@/api/system/dept.js'
 export default {
   name: "patient_list",
   dicts: ['time_type', 'package_type', 'dict_status'],
@@ -122,7 +143,8 @@ export default {
       queryParams: {
         packageType: '',
         packageName: '',
-        status: '0,1'
+        status: '0,1',
+        orgCode: ""
       },
       statusOption: [
         {
@@ -148,18 +170,26 @@ export default {
       },
       form: {
 
-      }
+      },
+      dropDownOrgList: []
     };
   },
   created() {
     this.getList();
+    this.dropDownOrg();
   },
   mounted() {
 
   },
   methods: {
+    /** 机构下拉框 */
+    dropDownOrg() {
+      dropDownOrg().then(resp =>{
+        this.dropDownOrgList = resp.data
+      })
+    },
     handleStatus(e, status) {
-      edit({ id: e.id, status: status }).then(response => {
+      edit({ id: e.id, status: status, orgCode: e.orgCode, orgName: e.orgName }).then(response => {
         this.$modal.msgSuccess(status == 0 ? `启用成功` : '停用成功');
         this.getList();
       });
@@ -168,12 +198,15 @@ export default {
     handleAdd(row) {
       this.reset();
       this.open = true;
+      if(this.queryParams.orgCode != '') {
+        this.form.orgCode = this.queryParams.orgCode
+      }
       this.title = "添加套餐";
     },
     /** 查询机构列表 */
     getList() {
       this.loading = true;
-      selectAll(this.queryParams).then(response => {
+      list(this.queryParams).then(response => {
         this.listData = response.data
         this.total = response.data.total;
         this.loading = false;
@@ -219,6 +252,9 @@ export default {
     handelEdit(row) {
       let catchForm = JSON.parse(JSON.stringify(row));
       this.form = catchForm
+      if(this.queryParams.orgCode != '') {
+        this.form.orgCode = this.queryParams.orgCode
+      }
       this.open = true;
       this.title = "编辑套餐";
     },
@@ -232,7 +268,7 @@ export default {
         res.data.geneticDiseases = res.data.geneticDiseases ? res.data.geneticDiseases.split(',') : undefined
         res.data.tags = res.data.tags ? res.data.tags.split(',') : undefined
         res.data.diagnoseResultType = res.data.diagnoseResultType ? res.data.diagnoseResultType.split(',') : undefined
-        learnSelectAll().then(res1 => {
+        learnSelectAll(item).then(res1 => {
           res1.data.map((item) => {
             if (item.id == res.data.packageId) {
               res.data.packageName = item.packageName
@@ -266,6 +302,11 @@ export default {
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          if(this.form.orgCode != '' && this.form.orgCode != undefined) {
+            const org = this.dropDownOrgList.find(item => item.orgCode === this.form.orgCode)
+            console.log(this.form.orgCode)
+            this.form.orgName = org.orgName
+          }
           let catchForm = this.form
           if(catchForm.id === null || catchForm.id === undefined || catchForm.id === "") {
             save(catchForm).then(res => {

+ 1 - 1
src/views/doctor/department/index.vue

@@ -16,7 +16,7 @@
       <el-col :span="1.5">
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
     </el-row>
 
     <el-table v-loading="loading" :data="listData" row-key="id">

+ 51 - 6
src/views/doctor/physician/index.vue

@@ -5,6 +5,16 @@
         <el-input v-model="queryParams.userName" placeholder="请输入医师名称" clearable size="small"
           @keyup.enter.native="handleQuery" />
       </el-form-item>
+      <el-form-item label="机构" prop="orgCode">
+        <el-select v-model="queryParams.orgCode">
+          <el-option
+            v-for="item in dropDownOrgList"
+            :key="item.orgCode"
+            :label="item.orgName"
+            :value="item.orgCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -137,10 +147,14 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="用户性别" prop="sex">
-              <el-select v-model="form.sex" placeholder="请选择性别">
-                <el-option v-for="dict in dict.type.dict_sex" :key="dict.value" :label="dict.label"
-                  :value="dict.value"></el-option>
+            <el-form-item label="机构" prop="orgCode">
+              <el-select v-model="form.orgCode" :disabled="title==='修改医师'">
+                <el-option
+                  v-for="item in dropDownOrgList"
+                  :key="item.orgCode"
+                  :label="item.orgName"
+                  :value="item.orgCode">
+                </el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -158,8 +172,11 @@
         </el-row>
         <el-row>
           <el-col :span="12">
-            <el-form-item label="单次问诊价格(元)" prop="price">
-              <el-input-number :min="0" v-model.trim="form.price" placeholder="请输入单次问诊价格" />
+            <el-form-item label="用户性别" prop="sex">
+              <el-select v-model="form.sex" placeholder="请选择性别">
+                <el-option v-for="dict in dict.type.dict_sex" :key="dict.value" :label="dict.label"
+                  :value="dict.value"></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -168,6 +185,14 @@
             </el-form-item>
           </el-col>
         </el-row>
+
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="单次问诊价格(元)" prop="price">
+              <el-input-number :min="0" v-model.trim="form.price" placeholder="请输入单次问诊价格" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row>
           <el-col :span="24">
             <el-form-item label="备注">
@@ -212,6 +237,7 @@
 import { listData, doctorSave, doctorDel,departmentList,doctorEdit,violentResetPwd } from "@/api/doctor/physician";
 import { updateUserPwd,unlockUser } from "@/api/system/user";
 import { symmetryEncrypt } from '@/utils/secret.js'
+import {dropDownOrg} from '@/api/system/dept.js'
 export default {
   name: "physician_list",
   dicts: ['department', 'dict_sex', 'dict_status', 'physician_title'],
@@ -248,7 +274,9 @@ export default {
       queryParams: {
         page: 1,
         limit: 10,
+        orgCode:""
       },
+      dropDownOrgList: [],
       // 表单参数
       form: {
 
@@ -328,8 +356,15 @@ export default {
   created() {
     this.getList();
     this.getdepartmentList()
+    this.dropDownOrg();
   },
   methods: {
+    /** 机构下拉框 */
+    dropDownOrg() {
+      dropDownOrg().then(resp =>{
+        this.dropDownOrgList = resp.data
+      })
+    },
     // 防抖函数
     debounce(fn, delay) {
       let timer = null;
@@ -435,6 +470,9 @@ export default {
     handleAdd(row) {
       this.reset();
       this.open = true;
+      if(this.queryParams.orgCode != '') {
+        this.form.orgCode = this.queryParams.orgCode
+      }
       this.form.sex = "0"
       this.title = "添加医师";
     },
@@ -446,6 +484,9 @@ export default {
       catchForm.avatar = catchForm.avatar.split(',')
 
       this.form = catchForm
+      if(this.queryParams.orgCode != '') {
+        this.form.orgCode = this.queryParams.orgCode
+      }
       this.open = true;
       this.title = "修改医师";
     },
@@ -470,6 +511,10 @@ export default {
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          if(this.form.orgCode != '' && this.form.orgCode != undefined) {
+            const org = this.dropDownOrgList.find(item => item.orgCode === this.form.orgCode)
+            this.form.orgName = org.orgName
+          }
           let catchForm = this.form
           // if (this.$refs['imgUpload'].fileList.length != 0) {
           //   catchForm.certificate = []

+ 42 - 1
src/views/equipment/list/index.vue

@@ -18,6 +18,17 @@
         </el-select>
       </el-form-item>
 
+      <el-form-item label="机构" prop="orgCode">
+        <el-select v-model="queryParams.orgCode">
+          <el-option
+            v-for="item in dropDownOrgList"
+            :key="item.orgCode"
+            :label="item.orgName"
+            :value="item.orgCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
+
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -84,6 +95,17 @@
             </el-option>
           </el-select>
         </el-form-item>
+
+        <el-form-item label="机构" prop="orgCode">
+          <el-select v-model="form.orgCode">
+            <el-option
+              v-for="item in dropDownOrgList"
+              :key="item.orgCode"
+              :label="item.orgName"
+              :value="item.orgCode">
+            </el-option>
+          </el-select>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -126,7 +148,7 @@
 
 <script>
 import { listData, equipmentSave, equipmentdelete, equipmentrentLog, returnHuan, getRetinfo,equipmentEdit } from "@/api/equipment/index";
-
+import {dropDownOrg} from '@/api/system/dept.js'
 
 export default {
   name: "equipment_list",
@@ -153,7 +175,9 @@ export default {
         equipmentType: undefined,
         sn: undefined,
         status: undefined,
+        orgCode: ""
       },
+      dropDownOrgList: [],
       // 表单参数
       form: {
       },
@@ -174,8 +198,15 @@ export default {
   },
   created() {
     this.getList();
+    this.dropDownOrg();
   },
   methods: {
+    /** 机构下拉框 */
+    dropDownOrg() {
+      dropDownOrg().then(resp =>{
+        this.dropDownOrgList = resp.data
+      })
+    },
     handleReturnHuan(e) {
       this.sn = e.sn
       this.retrunHuanOpen = true
@@ -230,11 +261,17 @@ export default {
     handleAdd(row) {
       this.reset();
       this.open = true;
+      if(this.queryParams.orgCode != '') {
+        this.form.orgCode = this.queryParams.orgCode
+      }
       this.title = "添加设备";
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.form = JSON.parse(JSON.stringify(row))
+      if(this.queryParams.orgCode != '') {
+        this.form.orgCode = this.queryParams.orgCode
+      }
       this.open = true;
       this.title = "修改设备";
     },
@@ -259,6 +296,10 @@ export default {
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          if(this.form.orgCode != '' && this.form.orgCode != undefined) {
+            const org = this.dropDownOrgList.find(item => item.orgCode === this.form.orgCode)
+            this.form.orgName = org.orgName
+          }
           if(this.form.id === null || this.form.id === undefined || this.form.id === ""){
             equipmentSave(this.form).then(res => {
               this.$modal.msgSuccess(this.form.id ? `修改成功` : '修改成功');

+ 1 - 1
src/views/officialAccounts/pay/index.vue

@@ -70,7 +70,7 @@
     </van-dialog>
 
 
-    <van-dialog v-model="agreementShow" title="未来蓝豚强脑系统服务协议" :lazy-render="false">
+    <van-dialog v-model="agreementShow" title="未来蓝豚强脑系统认知训练服务协议" :lazy-render="false">
       <div style="height: 68vh; overflow-x: hidden;">
         <xy />
       </div>

+ 21 - 2
src/views/order/list/index.vue

@@ -19,6 +19,16 @@
         <el-input v-model.trim="queryParams.mobile" placeholder="请输入手机号" clearable size="small"
           @keyup.enter.native="handleQuery" />
       </el-form-item>
+      <el-form-item label="机构" prop="orgCode">
+        <el-select v-model="queryParams.orgCode">
+          <el-option
+            v-for="item in dropDownOrgList"
+            :key="item.orgCode"
+            :label="item.orgName"
+            :value="item.orgCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -119,6 +129,7 @@
 </template>
 <script>
 import { listData, refund, getRefundParam } from "@/api/order/index";
+import {dropDownOrg} from '@/api/system/dept.js'
 
 
 export default {
@@ -146,7 +157,8 @@ export default {
         status: 0,
         payOrderId: undefined,
         payStatus: undefined,
-        mobile:undefined
+        mobile:undefined,
+        orgCode: ""
       },
       // 表单参数
       form: {
@@ -156,7 +168,7 @@ export default {
       returnInfo: {
         isReturn: '0'
       },
-
+      dropDownOrgList: []
     };
   },
   created() {
@@ -164,8 +176,15 @@ export default {
       this.queryParams.mobile=this.$route.query.mobile
     }
     this.getList();
+    this.dropDownOrg();
   },
   methods: {
+    /** 机构下拉框 */
+    dropDownOrg() {
+      dropDownOrg().then(resp =>{
+        this.dropDownOrgList = resp.data
+      })
+    },
     /** 查询订单列表 */
     getList() {
       this.loading = true;

+ 1 - 1
src/views/patient/add/index.vue

@@ -452,7 +452,7 @@ export default {
     },
     //** 获取套餐数据 */
     getlearnSelectAll() {
-      learnSelectAll().then(res => {
+      learnSelectAll(this.form).then(res => {
         this.packageData = res.data
         if (this.isEdit == '1') {
           res.data.forEach(item => {

+ 2 - 3
src/views/patient/addTwo/index.vue

@@ -259,8 +259,7 @@ export default {
       drawer: false,
       department: [],
       orderType: '',
-      Sencond: 120
-
+      Sencond: 120,
     };
   },
   beforeDestroy() {
@@ -351,7 +350,7 @@ export default {
     },
     //** 获取套餐数据 */
     getlearnSelectAll() {
-      learnSelectAll().then(res => {
+      learnSelectAll(this.form).then(res => {
         this.packageData = res.data
         if (this.isEdit == '1') {
           res.data.forEach(item => {

+ 23 - 3
src/views/patient/historyList/index.vue

@@ -9,6 +9,16 @@
         <el-input v-model="queryParams.mobile" placeholder="请输入手机号" clearable size="small"
           @keyup.enter.native="handleQuery" />
       </el-form-item>
+      <el-form-item label="机构" prop="orgCode">
+        <el-select v-model="queryParams.orgCode">
+          <el-option
+            v-for="item in dropDownOrgList"
+            :key="item.orgCode"
+            :label="item.orgName"
+            :value="item.orgCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -68,6 +78,7 @@ import { debounce } from 'lodash-es'
 import lookDetail from './lookDetail.vue';
 import trainDetatil from './trainDetatil.vue';
 import cePingInfo from './cePingInfo.vue';
+import {dropDownOrg} from '@/api/system/dept.js'
 export default {
   name: "patient_list",
   dicts: ['education_type'],
@@ -90,13 +101,15 @@ export default {
       queryParams: {
         page: 1,
         limit: 10,
-        status: 2
+        status: 2,
+        orgCode: ""
       },
-
+      dropDownOrgList: []
     };
   },
   created() {
     this.getList();
+    this.dropDownOrg();
   },
   watch: {
     'queryParams.page': {
@@ -122,6 +135,13 @@ export default {
   },
 
   methods: {
+
+    /** 机构下拉框 */
+    dropDownOrg() {
+      dropDownOrg().then(resp =>{
+        this.dropDownOrgList = resp.data
+      })
+    },
     /** 查询机构列表 */
     getList() {
       this.loading = true;
@@ -188,7 +208,7 @@ export default {
         res.data.geneticDiseases = res.data.geneticDiseases ? res.data.geneticDiseases.split(',') : undefined
         res.data.tags = res.data.tags ? res.data.tags.split(',') : undefined
         res.data.diagnoseResult = res.data.diagnoseResult ? res.data.diagnoseResult.split(',') : undefined
-        learnSelectAll().then(res1 => {
+        learnSelectAll(item).then(res1 => {
           res1.data.map((item) => {
             if (item.id == res.data.packageId) {
               res.data.packageName = item.packageName

+ 1 - 1
src/views/patient/list/cePingInfo.vue

@@ -321,7 +321,7 @@ export default {
     // 专业测评
     handelCePing: debounce(function () {
       let that = this
-      reviewTaskSave({ userId: this.defaultVal.id,scaleNameList: this.checkedCities }).then(res => {
+      reviewTaskSave({ userId: this.defaultVal.id,scaleNameList: this.checkedCities,orgCode: this.defaultVal.orgCode,orgName: this.defaultVal.orgName }).then(res => {
         that.$modal.msgSuccess('测评推送成功')
         that.handleClose()
       })

+ 34 - 12
src/views/patient/list/index.vue

@@ -9,6 +9,16 @@
         <el-input v-model="queryParams.mobile" placeholder="请输入手机号" clearable size="small"
           @keyup.enter.native="handleQuery" />
       </el-form-item>
+      <el-form-item label="机构" prop="orgCode">
+        <el-select v-model="queryParams.orgCode">
+          <el-option
+            v-for="item in dropDownOrgList"
+            :key="item.orgCode"
+            :label="item.orgName"
+            :value="item.orgCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -62,9 +72,9 @@
     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page"  :page-sizes="[10, 20, 30,50,100]" :limit.sync="queryParams.limit" />
 
     <el-dialog title="重置患者密码" :visible="resetShow" width="700px" append-to-body destroy-on-close>
-       <el-form ref="resetForm" :model="resetForm" :rules="rulesPass" label-width="110px">
+       <el-form ref="resetForm2" :model="resetForm2" :rules="rulesPass" label-width="110px">
           <el-form-item label="新密码" prop="newPwd">
-            <el-input v-model="resetForm.newPwd" placeholder="请输入新密码" type="password" show-password />
+            <el-input v-model="resetForm2.newPwd" placeholder="请输入新密码" type="password" show-password />
           </el-form-item>
           <el-form-item>
         <el-button type="primary" size="mini" @click="submit">修改</el-button>
@@ -82,6 +92,7 @@ import lookDetail from './lookDetail.vue';
 import trainDetatil from './trainDetatil.vue';
 import cePingInfo from './cePingInfo.vue';
 import {symmetryEncrypt} from '@/utils/secret'
+import {dropDownOrg} from '@/api/system/dept.js'
 export default {
   name: "patient_list",
   dicts: ['education_type'],
@@ -104,10 +115,13 @@ export default {
       queryParams: {
         page: 1,
         limit: 10,
-        status: 0
+        status: 0,
+        name: "",
+        mobile: "",
+        orgCode: ""
       },
       resetShow: false,
-      resetForm:{
+      resetForm2:{
         id: "",
         pwd: "",
         newPwd: ""
@@ -122,11 +136,13 @@ export default {
             trigger: "blur"
           }
         ]
-      }
+      },
+      dropDownOrgList: []
     };
   },
   created() {
     this.getList();
+    this.dropDownOrg()
   },
   watch: {
     'queryParams.page': {
@@ -154,11 +170,11 @@ export default {
 
   methods: {
     submit() {
-      this.$refs["resetForm"].validate(valid => {
+      this.$refs["resetForm2"].validate(valid => {
         if(valid) {
-          this.resetForm.pwd = symmetryEncrypt(this.resetForm.newPwd)
-          this.resetForm.newPwd = ""
-          resetPasswordSys(this.resetForm).then(resp => {
+          this.resetForm2.pwd = symmetryEncrypt(this.resetForm2.newPwd)
+          this.resetForm2.newPwd = ""
+          resetPasswordSys(this.resetForm2).then(resp => {
             if(resp.data == true) {
               this.$modal.msgSuccess("修改成功");
               this.resetShow = false
@@ -167,14 +183,20 @@ export default {
         }
       })
     },
+    /** 机构下拉框 */
+    dropDownOrg() {
+      dropDownOrg().then(resp =>{
+        this.dropDownOrgList = resp.data
+      })
+    },
     resetPassWord(row) {
       this.resetShow = true
-      this.resetForm = {
+      this.resetForm2 = {
         id: row.id,
         newPwd: ""
       }
     },
-    /** 查询机构列表 */
+    /** 查询患者列表 */
     getList() {
       this.loading = true;
       listData(this.queryParams).then(response => {
@@ -240,7 +262,7 @@ export default {
         res.data.geneticDiseases = res.data.geneticDiseases ? res.data.geneticDiseases.split(',') : undefined
         res.data.tags = res.data.tags ? res.data.tags.split(',') : undefined
         res.data.diagnoseResult = res.data.diagnoseResult ? res.data.diagnoseResult.split(',') : undefined
-        learnSelectAll().then(res1 => {
+        learnSelectAll(item).then(res1 => {
           res1.data.map((item) => {
             if (item.id == res.data.packageId) {
               res.data.packageName = item.packageName

+ 22 - 3
src/views/patient/manager/index.vue

@@ -9,6 +9,16 @@
         <el-input v-model="queryParams.mobile" placeholder="请输入手机号" clearable size="small"
           @keyup.enter.native="handleQuery" />
       </el-form-item>
+      <el-form-item label="机构" prop="orgCode">
+        <el-select v-model="queryParams.orgCode">
+          <el-option
+            v-for="item in dropDownOrgList"
+            :key="item.orgCode"
+            :label="item.orgName"
+            :value="item.orgCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -69,6 +79,7 @@
 import { listData, delpatient, patientDetail, learnSelectAll, queryMonthRecord, reviewTaskSave, dealPackage } from '@/api/patient/index'
 import { debounce } from 'lodash-es'
 import detail from '../addTwo/index.vue'
+import {dropDownOrg} from '@/api/system/dept.js'
 export default {
   name: "manager_list",
   dicts: ['education_type'],
@@ -98,11 +109,13 @@ export default {
         appUserId: undefined,
         packageId: undefined
       },
-      learningPackageList:[]
+      learningPackageList:[],
+      dropDownOrgList:[]
     };
   },
   created() {
     this.getList();
+    this.dropDownOrg()
   },
   watch: {
     'queryParams.page': {
@@ -129,6 +142,12 @@ export default {
   },
 
   methods: {
+    /** 机构下拉框 */
+    dropDownOrg() {
+      dropDownOrg().then(resp =>{
+        this.dropDownOrgList = resp.data
+      })
+    },
     checkDealPackage(){
       if(this.dealPackageDto.packageId == null || this.dealPackageDto.packageId == undefined || this.dealPackageDto.packageId == ""){
         this.$modal.msgError(`请选择套餐`);
@@ -155,7 +174,7 @@ export default {
         appUserId: undefined,
         packageId: undefined
       }
-      learnSelectAll().then(resp=>{
+      learnSelectAll(this.queryParams).then(resp=>{
         this.learningPackageList = resp.data
         this.dialogVisible = true;
         this.dealPackageDto.appUserId = userId
@@ -235,7 +254,7 @@ export default {
         res.data.geneticDiseases = res.data.geneticDiseases ? res.data.geneticDiseases.split(',') : undefined
         res.data.tags = res.data.tags ? res.data.tags.split(',') : undefined
         res.data.diagnoseResult = res.data.diagnoseResult ? res.data.diagnoseResult.split(',') : undefined
-        learnSelectAll().then(res1 => {
+        learnSelectAll(item).then(res1 => {
           res1.data.map((item) => {
             if (item.id == res.data.packageId) {
               res.data.packageName = item.packageName

+ 99 - 1
src/views/system/user/index.vue

@@ -68,6 +68,8 @@
                 v-hasPermi="['user_del']">删除</el-button>
               <el-button size="mini" type="text" icon="el-icon-key" @click="handleResetPwd(scope.row)"
                 v-hasPermi="['user_pwd']">重置密码</el-button>
+              <el-button v-if="scope.row.roleCodes != 'super_admin'  && scope.row.agentStatus =='1'" size="mini" type="text" @click="handleResetOrgCode(scope.row)"
+                >关联机构</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -145,6 +147,15 @@
           </el-col>
         </el-row>
 
+        <el-row v-if="form.roleCodes != 'super_admin'">
+          <el-col :span="24">
+            <el-form-item label="是否代理商">
+              <el-radio v-model="form.agentStatus" label="0">否</el-radio>
+              <el-radio v-model="form.agentStatus" label="1">是</el-radio>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
         <!-- <el-row>
           <el-col :span="24">
             <el-form-item label="角色">
@@ -173,6 +184,26 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog title="关联机构" :visible.sync="orgUserOpen" width="480px" >
+      <el-button type="primary" @click="handleAddGame" size="mini" style="margin-bottom: 10px;">添加</el-button>
+      <el-table :data="dropDownOrgList" @selection-change="handleSelectionChange" row-key="id">
+        <el-table-column
+          type="selection"
+          :selectable="checkSelectable"
+          width="55">
+        </el-table-column>
+        <el-table-column prop="orgName" label="机构名称"></el-table-column>
+        <el-table-column label="操作" align="center">
+          <template slot-scope="scope" v-if="checkSelectable(scope.row) === false && userOrgQuery.orgCode !== scope.row.orgCode">
+            <el-button  size="mini" type="text" icon="el-icon-delete" @click="orgUserDel(scope.row)"
+                  >删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
+
+    
   </div>
 </template>
 
@@ -187,6 +218,8 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import { roleIsExist } from '@/api/system/role'
 import store from "@/store";
 import { symmetryEncrypt } from '@/utils/secret.js'
+import { list, saveBatch, del} from '@/api/system/orgUser'
+import {dropDownOrg} from '@/api/system/dept.js'
 export default {
   name: "User",
   dicts: ['sys_normal_disable', 'dict_sex', 'dict_status'],
@@ -325,7 +358,15 @@ export default {
         roleCodes: [{ required: true, message: "请选择角色", trigger: "blur" },],
 
       },
-      isShowOrg:false
+      isShowOrg:false,
+      orgUserOpen: false,
+      dropDownOrgList: [],
+      orgUserList: [],
+      orgIds: [],
+      userOrgQuery: {
+        userId:"",
+        orgCode: ""
+      },
     };
   },
   watch: {
@@ -339,8 +380,65 @@ export default {
     this.roleSelectAllList()
     this.orgSelectAllList()
     this.isAdmin()
+    this.dropDownOrg()
   },
   methods: {
+    orgUserDel(row) {
+      del({ userId: this.userOrgQuery.userId,orgId: row.id}).then(resp =>{
+        this.orgUserOpen = false
+        this.$modal.msgSuccess("删除成功");
+      })
+    },
+    handleAddGame(){
+        if(!(this.orgIds.length>0)){
+          this.$modal.msgError('请选择关联机构!');
+          return
+        }
+        let userOrgList = []
+        this.orgIds.forEach(element => {
+          userOrgList.push({
+            userId: this.userOrgQuery.userId,
+            orgId: element.id
+          })
+        });
+        saveBatch(userOrgList).then(resp =>{
+          this.orgUserOpen = false
+          this.dropDownOrg()
+          this.$modal.msgSuccess("添加成功");
+        })
+    },
+    handleSelectionChange(val) {
+      this.orgIds = val
+    },
+    checkSelectable(e) {
+      let bool = true
+      this.orgUserList?.map((item, idx) =>{
+        if(e.id == item.orgId){
+          bool = false
+        }
+      })
+      return bool
+    },
+    /** 机构列表 */
+    dropDownOrg() {
+      dropDownOrg().then(resp =>{
+        this.dropDownOrgList = resp.data
+      })
+    },
+    handleResetOrgCode(row) {
+      this.userOrgQuery.userId = row.id
+      this.userOrgQuery.orgCode = row.orgCode
+      const sysOrg = this.dropDownOrgList.find(item => item.orgCode === row.orgCode);
+      
+      list(this.userOrgQuery).then(resp=>{
+        this.orgUserList = resp.data
+        this.orgUserOpen = true
+        this.orgUserList.push({
+          orgId: sysOrg.id,
+          userId: row.id
+        })
+      })
+    },
     /* 判断是否是超级管理员 */
     isAdmin() {
       if (store.getters.info.roleCodes.indexOf('super_admin') !== -1) {