point.vue 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. <template>
  2. <view class="point_box" :style="jdflag?'padding-top:100rpx':''">
  3. <!-- 项目信息 -->
  4. <uni-collapse ref="collapse" v-model="value" >
  5. <!-- :show-arrow='false' -->
  6. <uni-collapse-item title="节点安排" class='cldelista' :border="false" title-border="none" v-for="(ite,idx) in datainfo" :key="idx">
  7. <template v-slot:title>
  8. <view class="flexc contentt">
  9. <view class="flex0 f16 fw cofe">{{ite.year}}年{{ite.month}}月</view>
  10. <view class="zdlbtn finbtn0" v-if="ite.sfwc=='0'">无状态</view>
  11. <view class="zdlbtn finbtn3" v-if="ite.sfwc=='1'">未处理</view>
  12. <view class="zdlbtn finbtn2" v-if="ite.sfwc=='2'">未完成</view>
  13. <view class="zdlbtn finbtn1" v-if="ite.sfwc=='3'">已完成</view>
  14. </view>
  15. </template>
  16. <view class="content">
  17. <!-- 操作按钮 -->
  18. <view class="contenta flexcj">
  19. <view class="tit">责任单位</view>
  20. <view class="txt">{{checkstring(ite.fgwJdapZrDwList)}}</view>
  21. </view>
  22. <view class="contenta flexcj">
  23. <view class="tit">协同单位</view>
  24. <view class="txt">{{checkstring(ite.fgwJdapXtDwList)}}</view>
  25. </view>
  26. <view class="contenta flexcj">
  27. <view class="tit">具体内容</view>
  28. <view class="txt">{{ite.jdannr}}</view>
  29. </view>
  30. <view class="contenta " v-if="ite.fgwJdapFjList&&ite.fgwJdapFjList.length">
  31. <view class="tit mb8">附件</view>
  32. <view class="txt flexcj cldelistbf mb10" v-for="(fite,fidx) in ite.fgwJdapFjList" :key="'fj'+fidx">
  33. <view class="flext f16 c6">
  34. <view class="imgl">
  35. <image :src="wimg" ></image>
  36. </view>
  37. <view class="lh22">{{fite.fjName}}</view>
  38. </view>
  39. <view class="flexc f16 co28 flex0" @click="getDown(fite.path)">
  40. <image :src="downimg" class="imgr"></image>
  41. 预览</view>
  42. </view>
  43. </view>
  44. <!-- <view class="contenta flexcj">
  45. <view class="tit">督办等级</view>
  46. <view class="txt">{{ite.dbdj}}</view>
  47. </view> -->
  48. <view class="contenta flexcj">
  49. <view class="tit">要求完成时间</view>
  50. <view class="txt">{{ite.jdsj}}</view>
  51. </view>
  52. <view class="contenta flexcj">
  53. <view class="tit">审核结果</view>
  54. <view class="txt">
  55. <text v-if="ite.shjg==0" class="c6">待审核</text>
  56. <text v-if="ite.shjg==1" class="co26">已通过</text>
  57. <text v-if="ite.shjg==2" class="cof1">未通过</text>
  58. </view>
  59. </view>
  60. <view class="contenta flexcj">
  61. <view class="tit">审核意见</view>
  62. <view class="txt">
  63. {{ite.shyj}}
  64. </view>
  65. </view>
  66. <view class="contenta flexcj" v-if="ite.sfwc=='3'">
  67. <view class="tit">完成时间</view>
  68. <view class="txt">{{ite.updateTime}}</view>
  69. </view>
  70. <!-- <view class="contenta flexcj" v-if="ite.sfwc=='2'">
  71. <view class="tit">已超期天数</view>
  72. <view class="txt flexc">{{ite.cqts}}天
  73. <view class="zdlbtn" :class="{
  74. btn1:ite.type==1,
  75. btn2:ite.type==2,
  76. btn3:ite.type==0,
  77. }">{{getfgwch(ite.type)}}</view>
  78. </view>
  79. </view> -->
  80. <view class="rate_top" v-if="jdflag">
  81. <!-- 上报人汇报进度 未完成-->
  82. <view class="rate_topl" v-if="checkPermi(['fgw:jzqk:add'])" @click="getHuiFn(ite)">
  83. <image :src="hbimg" class="limg"></image>
  84. <text class="co28 fw">汇报进度</text>
  85. </view>
  86. <!-- 管理员 未完成-->
  87. <view class="rate_topl" v-if="checkPermi(['fgw:jdap:jdcb'])&&ite.sfwc!='3'&&ite.shjg==1" @click="getCbFn(ite.id)">
  88. <image :src="cbimg" class="limg"></image>
  89. <text class="cofe fw">一键催报</text>
  90. </view>
  91. <view class="rate_topr" @click="getoperateFn(ite)">
  92. <image :src="czimg" class="limg"></image>操作
  93. </view>
  94. </view>
  95. </view>
  96. </uni-collapse-item>
  97. </uni-collapse>
  98. <view class="bgbox" @click="getClose" v-if="moreflag"></view>
  99. <view class="more_fixed" v-if="moreflag">
  100. <view class="more_fixedt">
  101. <view v-if="checkPermi(['fgw:jzqk:list'])" @click="getjzqklistFn" >查看汇报进度</view>
  102. <view v-if="checkPermi(['fgw:jdap:jdsh'])" @click="getjdShFn" >审核</view>
  103. <!-- <view v-if="checkPermi(['fgw:jdap:query','fgw:jdap:edit'])&&(roles=='common_fgw'&&shjg!=1)" @click="getPutFn">修改</view>
  104. <view v-if="checkPermi(['fgw:jdap:remove'])&&(roles=='common_fgw'&&shjg!=1)" @click="getDelFn">删除</view> -->
  105. <!-- 普通用户 -->
  106. <view v-if="checkPermi(['fgw:jdap:editf'])&&shjg!=1" @click="getPutFn">修改</view>
  107. <view v-if="checkPermi(['fgw:jdap:removef'])&&shjg!=1" @click="getDelFn">删除</view>
  108. <!-- 管理员 -->
  109. <view v-if="checkPermi(['fgw:jdap:edit'])" @click="getPutFn">修改</view>
  110. <view v-if="checkPermi(['fgw:jdap:remove'])" @click="getDelFn">删除</view>
  111. <!-- () -->
  112. </view>
  113. <view class="more_fixedb" @click="getClose">取消</view>
  114. </view>
  115. </view>
  116. </template>
  117. <script>
  118. import { selectDictValue } from '@/utils/common.js';
  119. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  120. export default{
  121. props:{
  122. datainfo:{},
  123. fgwchlist:{},
  124. jdflag:{
  125. type:Boolean,
  126. default () {
  127. return true
  128. }
  129. }
  130. },
  131. data(){
  132. return{
  133. upimg:require('@/static/images/index/up.png'),
  134. wimg:require('@/static/images/index/wicon.png'),
  135. downimg:require('@/static/images/index/down.png'),
  136. hbimg:require("@/static/images/new/index/hbpoint.png"),
  137. cbimg:require("@/static/images/new/index/cbpoint.png"),
  138. czimg:require("@/static/images/new/index/czpoint.png"),
  139. value:[],
  140. valuetwo:[],
  141. fgwchlistes:[],
  142. content: '折叠内容主体,可自定义内容及样式,点击按钮修改内容使高度发生变化。',
  143. moreflag:false,
  144. checkid:'',
  145. checkite:'',//选择的数据
  146. roles:this.$store.state.user.roles[0],
  147. shjg:'',//审核结果
  148. }
  149. },
  150. mounted() {
  151. this.fgwchlistes=this.fgwchlist;
  152. },
  153. methods:{
  154. checkPermi, checkRole,
  155. getClose(){
  156. this.moreflag=false;
  157. },
  158. getoperateFn(ite){
  159. this.checkid=ite.id;
  160. this.shjg=ite.shjg;
  161. this.checkite=ite;
  162. this.moreflag=true;
  163. },
  164. getjdShFn(){
  165. this.moreflag=false;
  166. this.$emit('getjdShFn',this.checkid)
  167. },
  168. //催报
  169. getCbFn(id){
  170. var that=this;
  171. this.moreflag=false;
  172. uni.showModal({
  173. title: '确认催报',
  174. content: "是否确认催报",
  175. cancelText: '取消',
  176. confirmText: '确认',
  177. success: function(res) {
  178. if (res.confirm) {
  179. that.$emit('getCbFn',id)
  180. } else if (res.cancel) {
  181. }
  182. }
  183. });
  184. },
  185. //汇报
  186. getHuiFn(ite){
  187. this.$emit('getHuiFn',ite)
  188. },
  189. // 查看汇报进度
  190. getjzqklistFn(){
  191. this.moreflag=false;
  192. this.$emit('getjzqklistFn',this.checkite)
  193. },
  194. getDown(url){
  195. this.$emit('getDown',url)
  196. },
  197. getPutFn(){
  198. this.moreflag=false;
  199. this.$emit('getPutFn',this.checkid)
  200. },
  201. getfgwch(data){
  202. return selectDictValue(this.fgwchlistes, data);
  203. },
  204. checkstring(e){
  205. var newArr=[];
  206. e.forEach((ite,idx)=>{
  207. newArr[idx]=ite.deptName
  208. })
  209. return newArr.join(',')
  210. },
  211. getDelFn(e){
  212. var that=this;
  213. this.moreflag=false;
  214. uni.showModal({
  215. title: '确认删除',
  216. content: "是否确认删除",
  217. cancelText: '取消',
  218. confirmText: '确认',
  219. success: function(res) {
  220. if (res.confirm) {
  221. that.$emit('getDelFn',that.checkid)
  222. } else if (res.cancel) {
  223. }
  224. }
  225. });
  226. },
  227. }
  228. }
  229. </script>
  230. <style lang="scss" scoped>
  231. // .point_box{padding-top: 100rpx;}
  232. .cldelista{
  233. border-bottom: 2rpx solid #E5E5E5;
  234. &:last-of-type{border-bottom: none;}
  235. .contentt{padding:48rpx 28rpx;
  236. .cldelistz{display: flex;align-items: center;justify-content: flex-end;
  237. image{width: 26rpx;height: 20rpx;margin-left: 20rpx;transition: all .5s; }
  238. &.act{
  239. image{transform: rotate(-180deg);}
  240. }
  241. }
  242. }
  243. .content{padding: 0rpx 28rpx 40rpx 28rpx;}
  244. .contenta{padding: 22rpx 0;
  245. .tit{font-size: 32rpx;font-weight: bold;color: #343434;flex: 0 0 auto;margin-right: 20rpx;}
  246. .txt{font-size: 32rpx;color: #666666;}
  247. }
  248. &.cldelistb{padding: 48rpx 28rpx;
  249. .tit{margin-bottom: 0;}
  250. }
  251. .cldelistbf {
  252. image{margin-right: 18rpx;flex: 0 0 auto;}
  253. .imgl{width: 40rpx;height: 44rpx;display: flex;align-items: center;justify-content: center;margin-right: 16rpx;
  254. image{width: 38rpx;height: 30rpx;}
  255. }
  256. .imgr{width: 36rpx;height: 32rpx;}
  257. }
  258. }
  259. // 操作按钮
  260. .rate_top{display: flex;align-items: center;justify-content: space-between;margin-bottom: 10rpx;
  261. .rate_topl{height: 70rpx;display: flex;align-items: center;font-size: 32rpx;font-weight: 500;color: #20ACCF;
  262. .limg{width: 32rpx;height: 32rpx;margin-right: 20rpx;}
  263. }
  264. .rate_topr{height: 70rpx;display: flex;align-items: center;font-size: 32rpx;font-weight: 500;color: #1FB9F7;flex:0 0 auto;
  265. .limg{width: 32rpx;height: 32rpx;margin-right: 20rpx;}
  266. }
  267. }
  268. </style>