ideadetail.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <template>
  2. <view :style="'padding-bottom:' + bottom ">
  3. <view class='zhanline'></view>
  4. <!-- 第一页 -->
  5. <uni-forms class='inform' :class="disabled?'disabledbox':''" ref="form" :rules="rules" :modelValue="datainfo">
  6. <view class="info_tit">基本信息</view>
  7. <uni-forms-item name="dh" style='margin-bottom: 0;'>
  8. <view class="flexc infolist infolistd">
  9. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>督办单号</view>
  10. <input placeholder="请输入督办单号" :disabled='disabled' v-model="datainfo.dh" class="f16 c34 flex1 txr"/>
  11. </view>
  12. </uni-forms-item>
  13. <uni-forms-item name="deptName" style='margin-bottom: 0;'>
  14. <view class="flexc infolist infolistd">
  15. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>督办部门名称</view>
  16. <input placeholder="请输入督办部门名称" :disabled='disabled' v-model="datainfo.deptName" class="f16 c34 flex1 txr"/>
  17. </view>
  18. </uni-forms-item>
  19. <uni-forms-item name="xmbh" style='margin-bottom: 0;'>
  20. <view class="flexc infolist infolistd">
  21. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>项目编号</view>
  22. <input placeholder="请输入项目编号" :disabled='disabled' v-model="datainfo.xmbh" class="f16 c34 flex1 txr"/>
  23. </view>
  24. </uni-forms-item>
  25. <uni-forms-item name="xmmc" style='margin-bottom: 0;'>
  26. <view class="flexc infolist infolistd">
  27. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>项目名称</view>
  28. <input placeholder="请输入项目名称" :disabled='disabled' v-model="datainfo.xmmc" class="f16 c34 flex1 txr"/>
  29. </view>
  30. </uni-forms-item>
  31. <!-- <uni-forms-item name="sfwlhxxxm" style='margin-bottom: 0;'>
  32. <view class="flexc infolist">
  33. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>是否为回复</view>
  34. <picker range-key='label' :value="lhindex" :range="hflist" class="infolist_a" @change='bindDateChangea'>
  35. <view :class="sfwlhxxxm?'':'f16 co80'">{{sfwlhxxxm||"请选择是否回复"}}</view>
  36. </picker>
  37. </view>
  38. </uni-forms-item> -->
  39. <uni-forms-item name="dbTime" style='margin-bottom: 0;' >
  40. <view class="flexc infolist infolistd">
  41. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>督办日期</view>
  42. <view class="infolist_a">{{datainfo.dbTime}}</view>
  43. <!-- <picker mode="date" :value="datainfo.tbrq" :end="currentdate" class="infolist_a" @change='bindDateChange'>
  44. <view :class="datainfo.tbrq?'':'f16 co80'">{{datainfo.tbrq||"请选择填表日期"}}</view>
  45. </picker> -->
  46. </view>
  47. </uni-forms-item>
  48. <uni-forms-item name="blsx" style='margin-bottom: 0;'>
  49. <view class="flexc infolist infolistd">
  50. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>办理时限</view>
  51. <input placeholder="请输入办理时限" :disabled='disabled' v-model="datainfo.blsx" class="f16 c34 flex1 txr"/>
  52. </view>
  53. </uni-forms-item>
  54. <uni-forms-item name="dbsx" style='margin-bottom: 0;'>
  55. <view class="flexc infolist infolistd" style="align-items: flex-start;">
  56. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>督办事项</view>
  57. <textarea auto-height="true" :disabled='disabled' v-model="datainfo.dbsx" placeholder="请输入督办事项" class="text" placeholderStyle='text-align: right;font-size:32rpx;color:#808080'></textarea>
  58. </view>
  59. </uni-forms-item>
  60. <uni-forms-item name="tbr" style='margin-bottom: 0;'>
  61. <view class="flexc infolist">
  62. <view class="f16 fw c34 flex0 pr pl12">填报人</view>
  63. <input placeholder="请输入填报人" v-model="datainfo.tbr" class="f16 c34 flex1 txr"/>
  64. </view>
  65. </uni-forms-item>
  66. <uni-forms-item name="phone" style='margin-bottom: 0;'>
  67. <view class="flexc infolist">
  68. <view class="f16 fw c34 flex0 pr pl12">联系电话</view>
  69. <input placeholder="请输入联系电话" v-model="datainfo.phone" class="f16 c34 flex1 txr"/>
  70. </view>
  71. </uni-forms-item>
  72. <uni-forms-item name="jzqk" style='margin-bottom: 0;'>
  73. <view class="flexc infolist" style="align-items: flex-start;">
  74. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>进展情况</view>
  75. <textarea auto-height="true" v-model="datainfo.jzqk" placeholder="请输入项目进展情况" class="text" placeholderStyle='text-align: right;font-size:32rpx;color:#808080'></textarea>
  76. </view>
  77. </uni-forms-item>
  78. <uni-forms-item name="czwt" style='margin-bottom: 0;'>
  79. <view class="flexc infolist" style="align-items: flex-start;">
  80. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>存在问题</view>
  81. <textarea auto-height="true" v-model="datainfo.czwt" placeholder="请输入存在问题" class="text" placeholderStyle='text-align: right;font-size:32rpx;color:#808080;'></textarea>
  82. </view>
  83. </uni-forms-item>
  84. <uni-forms-item name="jjjy" style='margin-bottom: 0;'>
  85. <view class="flexc infolist" style="align-items: flex-start;">
  86. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>解决建议</view>
  87. <textarea auto-height="true" v-model="datainfo.jjjy" placeholder="请输入解决建议" class="text" placeholderStyle='text-align: right;font-size:32rpx;color:#808080;'></textarea>
  88. </view>
  89. </uni-forms-item>
  90. <uni-forms-item name="gzjh" style='margin-bottom: 0;'>
  91. <view class="flexc infolist" style="align-items: flex-start;">
  92. <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>下一步工作计划</view>
  93. <textarea auto-height="true" v-model="datainfo.gzjh" placeholder="请输入下一步工作计划" class="text" placeholderStyle='text-align: right;font-size:32rpx;color:#808080;'></textarea>
  94. </view>
  95. </uni-forms-item>
  96. <uni-forms-item name="remark" style='margin-bottom: 0;'>
  97. <view class="flexc infolist" style="align-items: flex-start;">
  98. <view class="f16 fw c34 flex0 pr pl12">备注</view>
  99. <textarea auto-height="true" v-model="datainfo.remark" placeholder="请输入备注" class="text" placeholderStyle='text-align: right;font-size:32rpx;color:#808080;'></textarea>
  100. </view>
  101. </uni-forms-item>
  102. <!-- v-if="checkPermi(['',''])" -->
  103. <view class="infobtn flexcc cf f16 f500" @click="getSubmit">提交</view>
  104. </uni-forms>
  105. <!-- 弹窗 -->
  106. <!-- <pop-up :type="poptype" @getClose='getClose' @getXmSubmitFn='getXmSubmitFn'></pop-up> -->
  107. </view>
  108. </template>
  109. <script>
  110. import popUp from "@/components/popup/popup.vue"
  111. import {getdbddetail,getdbdPut,getdbdDet} from "@/api/work/clue.js"
  112. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  113. import config from '@/config'
  114. const baseUrl = config.baseUrl
  115. import { getToken } from '@/utils/auth'
  116. export default {
  117. components:{
  118. popUp
  119. },
  120. data() {
  121. return {
  122. selectDate: '',
  123. defaultPhoneHeight: '', //屏幕默认高度
  124. nowPhoneHeight: '', //屏幕现在的高度
  125. bottom:0,
  126. type:1,
  127. poptype:0,//弹窗类型 1暂存/消耗 2审核意见 3批示
  128. pagetype:'add',
  129. datainfo:{
  130. "dh":"",//单号
  131. "xmId":"",//项目ID
  132. "xmbh":"",//项目编号
  133. "xmmc":"",//项目名称
  134. "deptId":"",//督办部门id
  135. "deptName":"",//督办部门名称
  136. "isHf":"",//是否回复
  137. "dbTime":"",//督办日期
  138. "blsx":"",//办理时限
  139. "dbsx":"",//督办事项
  140. "jzqk":"",//进展情况
  141. "czwt":"",//存在问题
  142. "jjjy":"",//解决建议
  143. "gzjh":"",//下一步工作计划
  144. "tbr":"",//填报人
  145. "phone":"",//联系电话
  146. "tbTime":"",//填报日期
  147. "progress":""
  148. },
  149. rules:{
  150. jzqk: {rules: [{required: true,errorMessage: '请输入进展情况'}]},
  151. czwt: {rules: [{required: true,errorMessage: '请输入存在问题'}]},
  152. jjjy: {rules: [{required: true,errorMessage: '请输入解决建议'}]},
  153. gzjh: {rules: [{required: true,errorMessage: '请输入下一步工作计划'}]},
  154. },
  155. disabled:'true',
  156. hflist:[{label:'是',id:'S'},{label:'否',id:'N'},],//领航
  157. map:{text:'dictLabel',value:'dictValue'},
  158. id:''
  159. }
  160. },
  161. onLoad(e) {
  162. var that=this;
  163. this.id=e.id;
  164. that.getDataFn()
  165. // #ifdef APP
  166. uni.onKeyboardHeightChange(res=> { //监听键盘高度变化
  167. const res_keyboard = uni.getSystemInfoSync();
  168. let key_height = res.height - (res_keyboard.screenHeight - res_keyboard.windowHeight)
  169. // let key_height = res.height - (res_keyboard.screenHeight - res_keyboard.windowHeight + res_keyboard.safeAreaInsets.bottom)
  170. this.bottom = `${ key_height>0 ? key_height : 0}px`;
  171. })
  172. // #endif
  173. },
  174. onHide() {
  175. // #ifdef APP-PLUS
  176. uni.offKeyboardHeightChange(); // 取消监听键盘高度变化事件,避免内存消耗
  177. // #endif
  178. },
  179. methods: {
  180. checkPermi, checkRole,
  181. // 线索详情
  182. getDataFn(){
  183. console.log(this.id)
  184. getdbddetail(this.id).then(res=>{
  185. var that=this;
  186. if(res.code==200){
  187. this.datainfo=res.data;
  188. }else{
  189. this.$toast(res.msg)
  190. }
  191. })
  192. },
  193. getSubmit(){
  194. this.$refs.form.validate().then(res => {
  195. if(this.datainfo.phone){
  196. let regphone = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
  197. if (!regphone.test(this.datainfo.phone)) {
  198. this.$toast("请输入正确的联系方式")
  199. return
  200. }
  201. }
  202. var params=this.datainfo;
  203. getdbdPut(params).then(res=>{
  204. if(res.code==200){
  205. this.$toast('回复成功')
  206. setTimeout(function() {
  207. uni.$emit('refreshdatalist','duban');
  208. uni.navigateBack({delta: 1});
  209. },1500);
  210. }else{
  211. this.$toast(res.msg)
  212. }
  213. })
  214. })
  215. },
  216. // 领航
  217. bindDateChangea(e) {
  218. var val=e.detail.value;
  219. this.sfwlhxxxm=this.lhlist[val].label;
  220. this.datainfo.sfwlhxxxm=this.lhlist[val].id
  221. },
  222. bindDateChange(e) {
  223. this.datainfo.tbrq = e.detail.value
  224. }
  225. }
  226. }
  227. </script>
  228. <style lang="scss">
  229. page {
  230. background-color: #ffffff;
  231. }
  232. .inform{padding-top: 30rpx; padding-bottom: 160rpx;}
  233. .infolist{padding: 30rpx 32rpx 30rpx 24rpx;position: relative;
  234. .cir{position: absolute;font-size: 36rpx;font-weight: bold;color: #FE5706;left: 0rpx;}
  235. }
  236. .delimg{width: 40rpx;height:40rpx;margin-left: 16rpx;display: flex;align-items: center;justify-content: center;
  237. image{width: 30rpx;height: 30rpx;}
  238. }
  239. .infobtn{width: 100%;height: 88rpx;background: #FA5F03;line-height: 88rpx;position: fixed;left: 0;right: 0;bottom: 0;z-index: 3;}
  240. .input_ye image{width: 34rpx;height: 18rpx;}
  241. .info_tit{font-size: 32rpx;color: #FE5706;padding: 30rpx 26rpx;font-weight: bold;}
  242. .infolist_a{height: 44rpx;flex: 1;text-align: right;font-size: 32rpx;color: #343434;}
  243. .infolist_add{position: absolute;right: 0;top: -40rpx;font-size: 28rpx;color: #41C942;padding-right: 30rpx;
  244. image{width: 30rpx;height: 30rpx;margin-right: 20rpx;}
  245. }
  246. .inform /deep/ .uni-forms-item__error{margin-top: -30rpx;margin-left: 24rpx;}
  247. .inform textarea{min-height: 44rpx;}
  248. .inform .pl12{margin-right: 10rpx;}
  249. .inform /deep/ .uni-easyinput__content-textarea{min-height: 200rpx;}
  250. .disabledbox{
  251. .infolistd{background-color: #F5f5f5;}
  252. }
  253. </style>