setservice.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <!-- 服务设置页 -->
  2. <template style="background-color: #f6f6f6;">
  3. <view style="width: 100%;height: 100%;">
  4. <!-- 弹窗 -->
  5. <u-modal v-model="tcShow" :content="content" width="50%" :show-cancel-button='true' :show-title="false" @confirm="qrsq"></u-modal>
  6. <!-- 开关选择器 -->
  7. <view v-for="(item,index) in serbicelist" class="list" :key='index':data-index="index">
  8. <!-- 左边文字 -->
  9. <view style="width: 20%;">{{item.zhonglei}}</view>
  10. <!-- 开通状态 -->
  11. <view style="width: 40%;">
  12. <text v-if="item.Opening == 3||item.Opening == false" style="text-decoration: underline; color: #888888;" @click="this.tcShow=true,num=index" >未开通</text>
  13. <text v-if="item.Opening == 1" style="color: #888888;">待审核</text>
  14. </view>
  15. <!-- 服务状态 -->
  16. <view style="width: 20%;color: #999999;">
  17. <text v-if="item.state">服务开启</text>
  18. <text v-else>服务关闭</text>
  19. </view>
  20. <!-- 控制器 -->
  21. <view style="width: 15%;">
  22. <u-switch v-model="item.state" :data-index="item.state" active-color="#84bb43" inactive-color="#eee" @change="openSave" :disabled="item.disp"></u-switch>
  23. </view>
  24. </view>
  25. <!-- 更多设置 -->
  26. <view class="list">
  27. <view style="height: 80rpx;width: 100%;display: flex;justify-content: space-between;align-items: center;padding: 0 20rpx;" @click="next">
  28. <text style="color: #757575;margin-right: 20rpx;">更多设置</text>
  29. <u-icon name="arrow-right" color="#c9c9c9"></u-icon>
  30. </view>
  31. </view>
  32. </view>
  33. </template>
  34. <script>
  35. export default {
  36. components: {
  37. },
  38. onLoad() {
  39. this.getStatus();
  40. },
  41. mounted() {
  42. },
  43. data() {
  44. return {
  45. //弹窗
  46. tcShow:false,//控制弹窗
  47. content:'申请开通此服务?',
  48. num:'',//点击的下标
  49. //zhonglei咨询种类
  50. //state服务开启状态 true为开 false为关
  51. //Opening开通状态 0为开通 1为申请中 2为未开通 修改为2=已通过,3=已经拒绝
  52. serbicelist: [{
  53. zhonglei: '电话咨询',
  54. state: false,
  55. Opening: 0,
  56. disp:true,
  57. }, {
  58. zhonglei: '图文咨询',
  59. state: false,
  60. Opening: 0,
  61. disp:true,
  62. }, {
  63. zhonglei: '门诊预约',
  64. state: false,
  65. Opening: 0,
  66. disp:true,
  67. }]
  68. }
  69. },
  70. methods: {
  71. /**
  72. * @author Liu Yuanhang
  73. * 查询开启状态(未完成暂时没有审核表)
  74. */
  75. getStatus:async function(){
  76. let res = await this.$request.post('doctor/getSettingBase',{'type':1});
  77. console.log('我是res',res);
  78. if(res.status==0){
  79. this.serbicelist[0].state = res.data.is_phone;
  80. this.serbicelist[1].state = res.data.is_chat;
  81. this.serbicelist[2].state = res.data.is_appoint
  82. if(res.data.is_appoint_status){
  83. this.serbicelist[2].Opening=res.data.is_appoint_status.status
  84. if(res.data.is_appoint_status.status==2){
  85. this.serbicelist[2].disp=false;
  86. }
  87. }else{
  88. this.serbicelist[2].Opening=0
  89. }
  90. if(res.data.is_chat_status){
  91. this.serbicelist[1].Opening=res.data.is_chat_status.status
  92. if(res.data.is_chat_status.status==2){
  93. this.serbicelist[1].disp=false;
  94. }
  95. }else{
  96. this.serbicelist[1].Opening=0
  97. }
  98. if(res.data.is_phone_status){
  99. this.serbicelist[0].Opening=res.data.is_phone_status.status
  100. if(res.data.is_phone_status.status==2){
  101. this.serbicelist[0].disp=false;
  102. }
  103. }else{
  104. this.serbicelist[0].Opening=0
  105. }
  106. }
  107. },
  108. /**
  109. * @author Liu Yuanhang
  110. * 修改状态
  111. * @param {Object} e
  112. */
  113. openSave:async function(e){
  114. let list = this.serbicelist;
  115. let data = {"is_chat":list[1]['state'],"is_phone":list[0]['state'],"is_appoint":list[2]['state']}
  116. if(typeof data != 'string'){
  117. data = JSON.stringify(data);
  118. }
  119. let res = await this.$request.post('doctor/saveSettingBase',{'type':1,'data':data});
  120. console.log("修改操作设置",res);
  121. if(res.status==0){
  122. uni.showToast({
  123. title:'操作成功',
  124. duration:2000,
  125. icon:'none'
  126. })
  127. }
  128. },
  129. // 下一页
  130. next(){
  131. console.log(this.serbicelist[0].Opening,this.serbicelist[1].Opening,this.serbicelist[2].Opening)
  132. if(!((this.serbicelist[0].Opening==2)||(this.serbicelist[1].Opening==2)||(this.serbicelist[2].Opening==2))){
  133. uni.showToast({
  134. title:'未开通任何服务',
  135. icon:'none'
  136. })
  137. }else{
  138. uni.navigateTo({
  139. url:'/pages/service/more'
  140. })
  141. }
  142. },
  143. // 确认申请
  144. qrsq:async function(){
  145. let types = 0;
  146. if(this.num==0){
  147. types = 2;
  148. }else if(this.num==1){
  149. types = 1;
  150. }else{
  151. types = 3;
  152. }
  153. let res = await this.$request.post("ServiceApply/serviceExamine",{"service_type":types});
  154. console.log("开通服务",res);
  155. if(res.status==0){
  156. uni.showToast({
  157. 'title':'请求成功',
  158. duration:3000
  159. })
  160. this.serbicelist[this.num].Opening = 1;
  161. }
  162. },
  163. }
  164. }
  165. </script>
  166. <style>
  167. .list {
  168. height: 120rpx;
  169. width: 100%;
  170. padding: 0 20rpx;
  171. display: flex;
  172. justify-content: center;
  173. align-items: center;
  174. background-color: #FFFFFF;
  175. border-bottom:1rpx solid #f6f6f6;
  176. }
  177. </style>