workInfo.vue 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631
  1. <template>
  2. <view style="background-color: #fff;" v-if="content != null">
  3. <view
  4. style="height: 90rpx;display: flex;align-items: center;justify-content: space-around;border-bottom: 1px solid #ceccca;background-color: #fff;"
  5. v-if="type == 0">
  6. <!-- <u-tabs :list="list1" :current="current" @click="click"></u-tabs> -->
  7. <view style="font-size: 28rpx;" class="tab" :class="current==0?'active':''" @click="current = 0">
  8. 基本信息
  9. </view>
  10. <view style="border-left: 1px solid #ceccca;height: 80%;">
  11. </view>
  12. <view style="font-size: 28rpx;" class="tab" :class="current==0?'':'active'" @click="current = 1">
  13. 流转记录
  14. </view>
  15. </view>
  16. <swiper style="background-color:#fff ;" :style="{height:type==0?'calc(100vh - 100rpx)':'100vh'}"
  17. :current="current" disable-touch>
  18. <swiper-item>
  19. <view style="height: 100%;overflow: auto;">
  20. <u--form labelPosition="left" labelAlign="center" :model="content" ref="uForm"
  21. :labelStyle="{fontSize:'32rpx'}" labelWidth="130">
  22. <view v-if="fkFlow == '006'">
  23. <u-form-item label="出差处室:" borderBottom ref="item1">
  24. <view class="content">
  25. {{content.outWorkDept}}
  26. </view>
  27. </u-form-item>
  28. <u-form-item label="出差人:" borderBottom ref="item1">
  29. <view class="content">
  30. {{content.userName}}
  31. </view>
  32. </u-form-item>
  33. <u-form-item label="目的地:" borderBottom ref="item1">
  34. <view class="content">
  35. <view>
  36. {{content.provinceType=='0'?'省内':'省外'}}
  37. </view>
  38. <view style="margin-top: 10rpx;">
  39. {{content.destination}}
  40. </view>
  41. </view>
  42. </u-form-item>
  43. <u-form-item label="起止日期:" borderBottom ref="item1">
  44. <view class="content">
  45. {{content.startTime+' 至 '+content.endTime}}
  46. </view>
  47. </u-form-item>
  48. <u-form-item label="出差事由:" borderBottom ref="item1">
  49. <view class="content">
  50. {{content.reason}}
  51. </view>
  52. </u-form-item>
  53. </view>
  54. <view v-if="fkFlow == '007'">
  55. <u-form-item label="申请人:" borderBottom ref="item1">
  56. <view class="content">
  57. {{content.userName}}
  58. </view>
  59. </u-form-item>
  60. <u-form-item label="邀请单位:" borderBottom ref="item1">
  61. <view class="content">
  62. {{content.inviteUnit}}
  63. </view>
  64. </u-form-item>
  65. <u-form-item label="培训名称:" borderBottom ref="item1">
  66. <view class="content">
  67. {{content.trainName}}
  68. </view>
  69. </u-form-item>
  70. <u-form-item label="目的地:" borderBottom ref="item1">
  71. <view class="content">
  72. {{content.destination}}
  73. </view>
  74. </u-form-item>
  75. <u-form-item label="起止日期:" borderBottom ref="item1">
  76. <view class="content">
  77. {{content.startTime+' 至 '+content.endTime}}
  78. </view>
  79. </u-form-item>
  80. <u-form-item label="授课题目:" borderBottom ref="item1">
  81. <view class="content">
  82. {{content.teacherTitle}}
  83. </view>
  84. </u-form-item>
  85. <u-form-item label="参加人数:" borderBottom ref="item1">
  86. <view class="content">
  87. {{content.numberOfParticipants}}
  88. </view>
  89. </u-form-item>
  90. </view>
  91. <view v-if="fkFlow == '009'">
  92. <u-form-item label="姓名:" borderBottom ref="item1">
  93. <view class="content">
  94. {{content.name}}
  95. </view>
  96. </u-form-item>
  97. <u-form-item label="请(休)假类别:" borderBottom ref="item1">
  98. <uni-data-select v-model="content.leaveTpye" :clear="false" placeholder="请选择下一节点"
  99. :localdata="statusList" disabled=""></uni-data-select>
  100. </u-form-item>
  101. <u-form-item label="起止日期:" borderBottom ref="item1">
  102. <view class="content">
  103. {{content.leaveStartTime+' 至 '+content.leaveEndTime}}
  104. </view>
  105. </u-form-item>
  106. <u-form-item label="请(休)假天数:" borderBottom ref="item1">
  107. <view class="content">
  108. {{content.leaveNumber}}
  109. </view>
  110. </u-form-item>
  111. <u-form-item label="请(休)假事由:" borderBottom ref="item1">
  112. <view class="content">
  113. {{content.leaveReason}}
  114. </view>
  115. </u-form-item>
  116. </view>
  117. <view v-if="fkFlow == '015'">
  118. <u-form-item label="申请人:" borderBottom ref="item1">
  119. <view class="content">
  120. {{content.createBy}}
  121. </view>
  122. </u-form-item>
  123. <u-form-item label="联系电话:" borderBottom ref="item1">
  124. <view class="content">
  125. {{content.phone}}
  126. </view>
  127. </u-form-item>
  128. <u-form-item label="起止日期:" borderBottom ref="item1">
  129. <view class="content">
  130. {{content.startUseTime+' 至 '+content.endUseTime}}
  131. </view>
  132. </u-form-item>
  133. <u-form-item label="用车天数:" borderBottom ref="item1">
  134. <view class="content">
  135. {{content.dayNum}}天
  136. </view>
  137. </u-form-item>
  138. <u-form-item label="乘车人数:" borderBottom ref="item1">
  139. <view class="content">
  140. {{content.carNum}}人
  141. </view>
  142. </u-form-item>
  143. <u-form-item label="目的地:" borderBottom ref="item1">
  144. <view class="content">
  145. {{content.addres}}
  146. </view>
  147. </u-form-item>
  148. <u-form-item label="用途:" borderBottom ref="item1">
  149. <view class="content">
  150. {{content.useMessage}}
  151. </view>
  152. </u-form-item>
  153. </view>
  154. <view v-if="fkFlow == '020'">
  155. <u-form-item label="申请人:" borderBottom ref="item1">
  156. <u--input v-model="content.userName" border="none" readonly></u--input>
  157. </u-form-item>
  158. <u-form-item label="所在处室:" borderBottom prop="deptName" ref="item1">
  159. <u--input v-model="content.deptName" placeholder="" border="none"></u--input>
  160. </u-form-item>
  161. <!-- <u-form-item label="值班日期:" borderBottom prop="srcDate" @click="typeChange('zhiban')">
  162. <view>
  163. {{content.srcDate}}
  164. </view>
  165. </u-form-item> -->
  166. <u-form-item label="调班日期:" prop="targetDate" @click="typeChange('tiaoban')" borderBottom
  167. ref="item1">
  168. <view>
  169. {{content.targetDate}}
  170. </view>
  171. </u-form-item>
  172. <u-form-item label="调班人:" @click='changePeople' borderBottom prop="user" ref="item1">
  173. <view class="">
  174. {{content.adjustUserStatus}}-{{content.adjustUserName}}
  175. </view>
  176. </u-form-item>
  177. <u-form-item label="替换人:" @click='changePeople' borderBottom prop="user" ref="item1">
  178. <view class="">
  179. {{content.replaceDeptName}}-{{content.replaceName}}
  180. </view>
  181. </u-form-item>
  182. </view>
  183. <view v-if="fkFlow == '017'">
  184. <u-form-item label="用章人:" borderBottom ref="item1">
  185. <u--input v-model="content.createBy" border="none" readonly></u--input>
  186. </u-form-item>
  187. <u-form-item label="用章处室:" borderBottom prop="useDept" ref="item1">
  188. <u--input v-model="content.useDept" readonly placeholder="请输入用章处室"
  189. border="none"></u--input>
  190. </u-form-item>
  191. <u-form-item label="用章日期:" borderBottom prop="useTime" @click="typeChange('yongzhang')">
  192. <view>
  193. {{content.useTime}}
  194. </view>
  195. </u-form-item>
  196. <u-form-item label="印章类别:" borderBottom prop="signetType">
  197. <uni-data-select :disabled="this.nodeId!='1701'" v-model="content.signetType"
  198. :clear="false" placeholder="请选择印章类别" :localdata="yongzhangList"></uni-data-select>
  199. </u-form-item>
  200. <u-form-item label="用章事由:" borderBottom prop="usingReason" ref="item1">
  201. <u--textarea :disabled="this.nodeId!='1701'" type="textarea"
  202. v-model="content.usingReason" placeholder="请输入用章事由" border="none"></u--textarea>
  203. </u-form-item>
  204. <u-form-item label="主送单位:" borderBottom prop="activeSend" ref="item1">
  205. <u--textarea :disabled="this.nodeId!='1701'" type="textarea"
  206. v-model="content.activeSend" placeholder="请输入主送单位" border="none"></u--textarea>
  207. </u-form-item>
  208. <u-form-item label="上传附件:" borderBottom prop="" ref="">
  209. <view v-if="this.nodeId=='1701'" class="example-body">
  210. <u-button style="width:380rpx" type="primary" @click="uploadPic()">上传</u-button>
  211. <!-- 展示 -->
  212. <div style="display: inline;">
  213. <view style="margin-bottom: 30rpx;display: flex;margin-top: 4rpx;"
  214. v-for="v in rowThis.ywFileList" :key="v.fileId">
  215. <u-icon style="margin-top: 4rpx;color: #2979FF;"
  216. name="attach"></u-icon><u--text :lines="1" size="14" color="#2979FF"
  217. decoration="underline" :text="v.name"
  218. @click="downLoad(v)">{{v.name}}</u--text><u-icon @click="delFile(v)"
  219. style="margin-top: 0rpx;" name="close"></u-icon>
  220. </view>
  221. </div>
  222. </view>
  223. <view v-else
  224. style="border-radius: 8rpx;background-color: #f3f3f3;margin-top: 40rpx;padding: 20rpx 40rpx;">
  225. <view style="margin-bottom: 30rpx;" v-for="v in rowThis.ywFileList" :key="v.fileId">
  226. <u--text :lines="1" size="15" color="#2979FF" decoration="underline"
  227. :text="v.name" @click="downLoad(v)">{{v.name}}</u--text>
  228. </view>
  229. </view>
  230. <u-action-sheet @select="selectClick" :actions="listPic" :closeOnClickOverlay="true"
  231. :closeOnClickAction="true" title="请选择" :show="showUpload"></u-action-sheet>
  232. </u-form-item>
  233. <u-form-item label="盖章份数:" borderBottom prop="signetCopies" ref="item1">
  234. <u--input :readonly="this.nodeId!='1701'" type="number" v-model="content.signetCopies"
  235. placeholder="请输入盖章份数" border="none"></u--input>
  236. </u-form-item>
  237. <u-form-item v-if="this.nodeId=='1701'" label="接收人:" borderBottom prop="toEmpsName"
  238. @click="peoShow = true">
  239. <view>
  240. {{content.toEmpsName}}
  241. </view>
  242. </u-form-item>
  243. <u-modal :show="peoShow" title="选择接收人" showCancelButton @cancel="cancel" @confirm="queren">
  244. <view style="width: 100%;height: 40vh;overflow: auto;" v-if="peoShow == true">
  245. <u-radio-group v-model="value" @change="radioChange" iconPlacement="right">
  246. <u-collapse accordion style="width: 100%;">
  247. <u-collapse-item :title="v.Name" :name="v.No" :key="v.No"
  248. v-for="v in deptList" style="width: 100%;">
  249. <view
  250. style="font-size: 32rpx; padding: 20rpx 0; border-bottom: 1px solid #eaeaea;"
  251. v-for=" i in userList" :key="i.NO" v-if="i.FK_Dept == v.No">
  252. <u-radio :label="i.Name" :name="i"></u-radio>
  253. </view>
  254. </u-collapse-item>
  255. </u-collapse>
  256. </u-radio-group>
  257. </view>
  258. </u-modal>
  259. </view>
  260. <view v-if="fkFlow == '018'">
  261. <u-form-item label="用章人:" borderBottom ref="item1">
  262. <u--input v-model="content.createBy" border="none" readonly></u--input>
  263. </u-form-item>
  264. <u-form-item label="用章处室:" borderBottom prop="useDept" ref="item1">
  265. <u--input readonly v-model="content.useDept" placeholder="请输入用章处室"
  266. border="none"></u--input>
  267. </u-form-item>
  268. <u-form-item label="用章日期:" borderBottom prop="useTime" @click="typeChange('yongzhang')">
  269. <view readonly>
  270. {{content.useTime}}
  271. </view>
  272. </u-form-item>
  273. <u-form-item label="合同名称:" borderBottom prop="usingReason" ref="item1">
  274. <u--textarea type="textarea" v-model="content.usingReason" placeholder="请输入合同名称"
  275. border="none"></u--textarea>
  276. </u-form-item>
  277. <u-form-item label="主送单位:" borderBottom prop="activeSend" ref="item1">
  278. <u--textarea type="textarea" v-model="content.activeSend" placeholder="请输入主送单位"
  279. border="none"></u--textarea>
  280. </u-form-item>
  281. <u-form-item label="盖章份数:" borderBottom prop="signetCopies" ref="item1">
  282. <u--input type="textarea" v-model="content.signetCopies" placeholder="请输入盖章份数"
  283. border="none"></u--input>
  284. </u-form-item>
  285. </view>
  286. <view v-if="fkFlow == '016'">
  287. <u-form-item label="督办事项:" borderBottom prop="title">
  288. <u--input :readonly='isEdit' placeholder='请输入督办事项' v-model="content.title"
  289. border="none"></u--input>
  290. </u-form-item>
  291. <!-- <u-form-item label="处室及负责人:" borderBottom prop="departmentHead">
  292. <u--input readonly v-model="content.departmentHead" border="none"></u--input>
  293. </u-form-item> -->
  294. <!-- <u-form-item label="信息类别:" borderBottom prop="infoType">
  295. <u--textarea :disabled='isEdit' type="textarea" v-model="content.infoType"
  296. placeholder="请输入信息类别" border="none"></u--textarea>
  297. </u-form-item> -->
  298. <u-form-item label="督办来源:" borderBottom prop="infoSource">
  299. <uni-data-select :disabled='isEdit' @change="infoSourceChange"
  300. v-model="content.infoSource" :clear="false" placeholder="请选择督办来源"
  301. :localdata="InfoList"></uni-data-select>
  302. </u-form-item>
  303. <u-form-item label="督办内容:" borderBottom prop="infoSourceContent">
  304. <u--textarea :disabled='isEdit' type="textarea" v-model="content.infoSourceContent"
  305. :placeholder="infoSourceContent" border="none"></u--textarea>
  306. </u-form-item>
  307. <u-form-item label="完成时限:" @click="typeChange('shixian')" borderBottom prop="doneTime">
  308. <view readonly>
  309. {{content.doneTime}}
  310. </view>
  311. <!-- <u--input v-model="content.doneTime" border="none" readonly></u--input> -->
  312. </u-form-item>
  313. <!-- <u-form-item label="完成时限内容:" borderBottom prop="doneContent">
  314. <u--textarea :disabled='isEdit' type="textarea" v-model="content.doneContent"
  315. placeholder="**月**日
  316. ****要求/文件要求/部门确定" border="none"></u--textarea>
  317. </u-form-item>
  318. <u-form-item label="议定事项:" borderBottom prop="itemPostil">
  319. <u--textarea :disabled='isEdit' type="textarea" v-model="content.itemPostil"
  320. placeholder="请输入议定事项" border="none"></u--textarea>
  321. </u-form-item> -->
  322. <u-form-item label="责任处室:" borderBottom prop="prersonLiable">
  323. <u--textarea :disabled='isEdit' style="width: 200rpx;" type="textarea"
  324. v-model="content.prersonLiable" placeholder="请输入责任处室" border="none"></u--textarea>
  325. <u-button :disabled='isEdit' size="small" type="primary" text="选择" @click="handelSelect"
  326. style="margin-top: 40rpx;width: 50rpx;margin-right: 20rpx;"></u-button>
  327. </u-form-item>
  328. </view>
  329. <view v-if="type==0" style="padding-bottom: 40rpx;">
  330. <u-form-item label="下一节点:" borderBottom ref="item1"
  331. v-if="overType==false&&this.nodeId!='1701'">
  332. <uni-data-select v-model="content.jdindex" :clear="false" placeholder="请选择下一节点"
  333. :localdata="list" @change="change"></uni-data-select>
  334. </u-form-item>
  335. <!-- <u-form-item label="下发人员:" borderBottom v-if="DeliveryWay==4&&this.nodeId!='1701'"
  336. ref="item1" @click="choosePeo">
  337. <view :style="{color:content.users==null?'rgb(192, 196, 204)':''}">
  338. {{content.users==null?'请选择人员': content.userList}}
  339. </view>
  340. </u-form-item> -->
  341. <u-form-item label="进展情况:" borderBottom ref="item1" v-if="jinzhan">
  342. <u--textarea v-model="content.progress" placeholder="请输入进展情况"
  343. border="none"></u--textarea>
  344. </u-form-item>
  345. <u-form-item v-if="isEval && liucheng != false" label="进度评价:" borderBottom
  346. prop="progressEva">
  347. <uni-data-select v-model="content.progressEva" :clear="false" placeholder="请选择进度评价"
  348. :localdata="progress_eva"></uni-data-select>
  349. </u-form-item>
  350. <view v-if="!jinzhan&&this.nodeId!='1701'" class="">
  351. <u-form-item label="审批意见:" borderBottom ref="item1" v-if="gdType == false">
  352. <u--textarea v-model="content.reviewMsg" placeholder="请输入审批意见" autoHeight
  353. border="none"></u--textarea>
  354. </u-form-item>
  355. </view>
  356. <view v-if="gdType == true">
  357. <u-form-item label="档案分类:" borderBottom ref="item1" @click="chooseGd">
  358. <view :style="{color:content.typeId==null?'rgb(192, 196, 204)':''}">
  359. {{content.typeId==null?'请选择档案分类': content.gdtype}}
  360. </view>
  361. </u-form-item>
  362. </view>
  363. <view style="margin-top: 40rpx;padding: 0 20rpx;box-sizing: border-box;"
  364. v-if="gdType == false">
  365. <u-button type="primary" text="提交" @click="submit"></u-button>
  366. </view>
  367. <view style="margin-top: 40rpx;padding: 0 20rpx;box-sizing: border-box;"
  368. v-if="gdType == true">
  369. <u-button type="primary" text="归档" @click="save"></u-button>
  370. </view>
  371. <u-button type="error" text="退回" @click="show = true"
  372. style="width: calc(100vw - 40rpx);margin-top: 40rpx;"
  373. v-if="backType == true&&this.nodeId!='1701'&&this.nodeId!='1705'"></u-button>
  374. <view style="margin-top: 40rpx;padding: 0 20rpx;box-sizing: border-box;" v-if="showBack">
  375. <u-button type="warning" text="拒绝" @click="turnDown"></u-button>
  376. </view>
  377. </view>
  378. <view style="padding: 20rpx;box-sizing: border-box;" v-else>
  379. <u-steps :current="lzNum-1" direction="column" dot v-if="record != null">
  380. <view v-for="(v,i) in record" :key="i">
  381. <u-steps-item :error="v.ActionType==2?true:false"
  382. :title='v.NDFromT+"("+v.ActionTypeText+")"' v-if="v.ActionType==='28'">
  383. <view slot="desc" style="color: #606266">
  384. <view style="font-size: 28rpx;">
  385. 处理人:{{v.EmpFromT}}
  386. </view>
  387. <view style="font-size: 28rpx;">
  388. 到达时间:{{v.SDT}}
  389. </view>
  390. </view>
  391. </u-steps-item>
  392. <view v-else-if="v.ActionType22 != undefined">
  393. <u-steps-item :error="v.ActionType==2?true:false"
  394. v-for="(item,index) in v.ActionType22" :key="index"
  395. :title='item.NDFromT+"("+v.ActionTypeText+")"'>
  396. <view slot="desc" style="color:#606266;">
  397. <view style="font-size: 28rpx;">
  398. 处理部门:{{item.NodeData.split("DeptName=")[1]}}
  399. </view>
  400. <view style="font-size: 28rpx;">
  401. 处理人:{{item.Exer.split(',')[1]}}
  402. </view>
  403. <view style="font-size: 28rpx;">
  404. 处理时间:{{item.RDT}}
  405. </view>
  406. <view style="font-size: 28rpx;">
  407. 审核意见:{{item.Msg}}
  408. </view>
  409. </view>
  410. </u-steps-item>
  411. </view>
  412. <u-steps-item :error="v.ActionType==2?true:false"
  413. :title='v.NDFromT+"("+v.ActionTypeText+")"' v-else>
  414. <view slot="desc" style="color: #606266">
  415. <view style="font-size: 28rpx;">
  416. 处理部门:{{v.NodeData.split("DeptName=")[1]}}
  417. </view>
  418. <view style="font-size: 28rpx;">
  419. 处理人:{{v.Exer.split(',')[1]}}
  420. </view>
  421. <view style="font-size: 28rpx;">
  422. 处理时间:{{v.RDT}}
  423. </view>
  424. </view>
  425. </u-steps-item>
  426. </view>
  427. </u-steps>
  428. </view>
  429. </u--form>
  430. </view>
  431. </swiper-item>
  432. <swiper-item>
  433. <view
  434. style="padding: 20rpx;box-sizing: border-box;width: 100%;box-sizing: border-box;height: 100%;overflow: auto;">
  435. <u-steps :current="lzNum-1" direction="column" dot v-if="record != null">
  436. <view v-for="(v,i) in record" :key="i">
  437. <u-steps-item :error="v.ActionType==2?true:false"
  438. :title='v.NDFromT+"("+v.ActionTypeText+")"' v-if="v.ActionType=='28'">
  439. <view slot="desc" style="color: #606266">
  440. <view style="font-size: 28rpx;">
  441. 处理人:{{v.EmpFromT}}
  442. </view>
  443. <view style="font-size: 28rpx;">
  444. 到达时间:{{v.SDT}}
  445. </view>
  446. </view>
  447. </u-steps-item>
  448. <view v-else-if="v.ActionType22 != undefined">
  449. <u-steps-item :error="v.ActionType==2?true:false" v-for="(item,index) in v.ActionType22"
  450. :key="index" :title='item.NDFromT+"("+v.ActionTypeText+")"'>
  451. <view slot="desc" style="color:#606266;">
  452. <view style="font-size: 28rpx;">
  453. 处理部门:{{item.NodeData.split("DeptName=")[1]}}
  454. </view>
  455. <view style="font-size: 28rpx;">
  456. 处理人:{{item.Exer.split(',')[1]}}
  457. </view>
  458. <view style="font-size: 28rpx;">
  459. 处理时间:{{item.RDT}}
  460. </view>
  461. <view style="font-size: 28rpx;">
  462. 审核意见:{{item.Msg}}
  463. </view>
  464. </view>
  465. </u-steps-item>
  466. </view>
  467. <u-steps-item :error="v.ActionType==2?true:false"
  468. :title='v.NDFromT+"("+v.ActionTypeText+")"' v-else>
  469. <view slot="desc" style="color: #606266">
  470. <view style="font-size: 28rpx;">
  471. 处理部门:{{v.NodeData.split("DeptName=")[1]}}
  472. </view>
  473. <view style="font-size: 28rpx;">
  474. 处理人:{{v.Exer.split(',')[1]}}
  475. </view>
  476. <view style="font-size: 28rpx;">
  477. 处理时间:{{v.RDT}}
  478. </view>
  479. </view>
  480. </u-steps-item>
  481. </view>
  482. </u-steps>
  483. </view>
  484. </swiper-item>
  485. </swiper>
  486. <u-modal :show="show" title="退回" :closeOnClickOverlay="true" showCancelButton @cancel="close" @close="close"
  487. @confirm="back">
  488. <view class="slot-content" style="width: 100%;">
  489. <u--form labelPosition="left" labelAlign="center" :model="content" ref="uForm1"
  490. :labelStyle="{fontSize:'32rpx'}" labelWidth="100">
  491. <u-form-item label="退回节点:" borderBottom ref="item1">
  492. <uni-data-select v-model="content.returnToNodeID" placeholder="请选择节点" :clear="false"
  493. :localdata="backlist"></uni-data-select>
  494. </u-form-item>
  495. <u-form-item label="退回意见:" borderBottom ref="item1">
  496. <u--textarea v-model="content.backMsg" placeholder="请输入退回意见" autoHeight
  497. border="none"></u--textarea>
  498. </u-form-item>
  499. </u--form>
  500. </view>
  501. </u-modal>
  502. <u-modal :show="show1" title="拒绝" :closeOnClickOverlay="true" showCancelButton @cancel="close" @close="close"
  503. @confirm="submitNodeTurn">
  504. <view class="slot-content" style="width: 100%;">
  505. <u--form labelPosition="left" labelAlign="center" :model="content" ref="uForm1"
  506. :labelStyle="{fontSize:'32rpx'}" labelWidth="100">
  507. <u-form-item label="拒绝原因:" borderBottom ref="item1">
  508. <u--textarea v-model="content.msg" placeholder="请输入拒绝原因" autoHeight border="none"></u--textarea>
  509. </u-form-item>
  510. </u--form>
  511. </view>
  512. </u-modal>
  513. <u-calendar placeholder="请选择日期" :show="showDate" mode="single" allowSameDay @confirm="confirmOne"
  514. @close="showDate = false"></u-calendar>
  515. </view>
  516. </template>
  517. <script>
  518. import {
  519. parseBigInt
  520. } from 'jsencrypt/lib/lib/jsbn/jsbn'
  521. // import uButton from "../../uni_modules/uview-ui/components/u-button/u-button.vue"
  522. export default {
  523. data() {
  524. return {
  525. deptList: [], //部门列表
  526. userList: [], //人员列表
  527. value: null,
  528. peoShow: false,
  529. listPic: [{
  530. name: '拍照上传'
  531. }, {
  532. name: '从相册上传'
  533. }],
  534. showUpload: false,
  535. uploadUrl: 'http://192.168.1.42:8087' + "/system/file/fileupload",
  536. rowThis: {
  537. ywFileList: []
  538. },
  539. yongzhangList: [],
  540. showDate: false,
  541. InfoList: [],
  542. infoSourceContent: '',
  543. liucheng: true,
  544. isEdit: true,
  545. isEval: false,
  546. db_template: [],
  547. progress_eva: [],
  548. current: 0,
  549. showBack: false,
  550. content: {},
  551. statusList: [],
  552. //流转记录
  553. record: null,
  554. //待办已办
  555. type: 0,
  556. //节点列表
  557. list: [],
  558. //是否选择下发人员
  559. selectType: 3,
  560. workid: null,
  561. flowNo: null,
  562. id: null,
  563. //tabs
  564. list1: [{
  565. name: '待办内容'
  566. },
  567. {
  568. name: '流转记录'
  569. }
  570. ],
  571. DeliveryWay: null, //判断是否需要审核意见
  572. gd: null, //密级列表
  573. gdType: false, //判断是否是归档
  574. overType: false, //判断是否结束
  575. //上个页面传过来的参数
  576. parameter: null,
  577. fkFlow: null, // 006 中层出差 007 外出授课备案
  578. //退回状态
  579. backType: false,
  580. //退回节点列表
  581. backlist: [],
  582. show: false,
  583. show1: false,
  584. jinzhan: false,
  585. lzNum: 0,
  586. nodeId: null,
  587. YorN: '1',
  588. caozuo: true
  589. }
  590. },
  591. onLoad(options) {
  592. let that = this
  593. that.parameter = options
  594. that.fkFlow = options.fkFlow
  595. that.getDicts()
  596. this.getDictsYongzhang()
  597. that.getContent(options.workid)
  598. that.getRecord(options.workid)
  599. if (options.nodeName.indexOf('归档') != -1 || options.nodeName.indexOf('存档') != -1) {
  600. that.gdType = true
  601. }
  602. that.type = options.type
  603. that.nodeId = options.nodeId
  604. if (options.nodeId == '1701') {
  605. this.caozuo = false
  606. this.getPeoList(options.fkFlow)
  607. }
  608. if (options.fkFlow == '020') {
  609. this.showBack = true
  610. that.nodeId = options.nodeId
  611. if (options.nodeId == '2001' || options.nodeId == '2004') {
  612. this.showBack = false
  613. }
  614. }
  615. if (options.nodeId == '1605') {
  616. this.jinzhan = true
  617. setTimeout(() => {
  618. this.content.reviewMsg = '同意'
  619. }, 500)
  620. }
  621. if (options.nodeId == "1606") {
  622. this.isEval = true;
  623. this.getJindu()
  624. }
  625. that.workid = options.workid
  626. that.flowNo = options.flowNo
  627. if (options.fkFlow == '016') {
  628. this.getDictsInfo()
  629. uni.setNavigationBarTitle({
  630. title: '督办事项'
  631. })
  632. uni.$u.http.get('/jflow/restful/getSelfParas', {
  633. params: {
  634. workid: options.workid
  635. }
  636. }).then((res) => {
  637. console.log('res', res)
  638. if (res.data.SelfParas == 'isEdit') {
  639. this.isEdit = false
  640. }
  641. })
  642. } else {
  643. uni.setNavigationBarTitle({
  644. title: options.title
  645. })
  646. }
  647. // if (options.type == 0) {
  648. // // that.jdList(options.workid, options.flowNo)
  649. // setTimeout(() => {
  650. // this.isOver(options)
  651. // }, 500)
  652. // // this.getjsPeo(options.workid, options.flowNo)
  653. // }
  654. },
  655. onShow() {
  656. uni.$once('query', (query) => {
  657. if (query.a == 1) {
  658. this.content.users = getApp().globalData.peoIdList
  659. this.content.userList = getApp().globalData.peoList
  660. this.$forceUpdate()
  661. } else if (query.a == 2) {
  662. this.content.typeId = getApp().globalData.gdId.split(",")[0]
  663. this.content.gdtype = getApp().globalData.gdId.split(",")[1]
  664. this.$forceUpdate()
  665. } else if (query.a == 'two') {
  666. // this.content.prersonLiable = getApp().globalData.zerenList
  667. if (this.content.prersonLiable != null) {
  668. let arrPeo = this.content.prersonLiable.split(",");
  669. console.log("aeepro", arrPeo);
  670. let arr = getApp().globalData.zerenList.split(',')
  671. console.log('arr', arr)
  672. arr = arr.concat(this.content.prersonLiable)
  673. console.log('11111', arr)
  674. this.content.prersonLiable = arr.join(" , ");
  675. } else {
  676. this.content.prersonLiable = getApp().globalData.zerenList
  677. }
  678. }
  679. })
  680. },
  681. methods: {
  682. radioChange(e) {
  683. console.log(e)
  684. },
  685. queren() {
  686. let that = this
  687. console.log('‘value,', that.content.params)
  688. that.content.users = that.value.NO
  689. that.content.toEmpsName = that.value.Name
  690. that.peoShow = false
  691. },
  692. checkboxChange(newValues) {
  693. // let selectedCount = newValues.filter(value => value).length;
  694. // if (selectedCount > 2) {
  695. // // 如果选中项超过两个,取消最早选中的复选框
  696. // let earliestSelectedIndex = newValues.findIndex(value => value);
  697. // newValues[earliestSelectedIndex] = false;
  698. // uni.showToast({
  699. // title: "只能选择两位带班领导",
  700. // icon: "none",
  701. // mask: true,
  702. // duration: 1000
  703. // })
  704. // }
  705. this.value1 = newValues;
  706. this.content.params.toEmps = newValues.join(',')
  707. let arr = []
  708. this.userList.forEach(res => {
  709. newValues.forEach(res1 => {
  710. console.log(res.NO, res1)
  711. if (res.NO == res1) {
  712. arr.push(res.Name)
  713. }
  714. })
  715. })
  716. this.content.toEmpsName = arr.join(',')
  717. },
  718. //获取接收人信息
  719. getPeoList(v) {
  720. uni.$u.http.get(`/jflow/restful/GenerNextStepNodeEmpsNoWorkId?flowNo=${v}&toNodeID=1703`).then(res => {
  721. this.deptList = res.Depts
  722. this.userList = res.Emps
  723. console.log(this.deptList)
  724. console.log(this.userList)
  725. })
  726. },
  727. uploadPic() {
  728. if (this.rowThis.ywFileList.length == 0) {
  729. this.showUpload = true
  730. } else {
  731. uni.showToast({
  732. title: '最多上传一张',
  733. icon: 'none'
  734. })
  735. return
  736. }
  737. },
  738. downLoad(v) {
  739. console.log('’15252', v)
  740. uni.navigateTo({
  741. url: "/pages/office/office?url=" + getApp().globalData.saveUrl + v.path
  742. })
  743. // uni.downloadFile({
  744. // url: path,
  745. // success: (res) => {
  746. // var filePath = res.tempFilePath;
  747. // uni.openDocument({
  748. // filePath: filePath,
  749. // showMenu: true,
  750. // success: function(res) {
  751. // console.log('打开文档成功');
  752. // }
  753. // });
  754. // }
  755. // })
  756. },
  757. delFile(itemFile) {
  758. console.log('itemFILE', itemFile)
  759. this.rowThis.ywFileList.splice(itemFile, 1)
  760. },
  761. selectClick(index) {
  762. console.log(index)
  763. let that = this
  764. if (index.name == '拍照上传') {
  765. uni.chooseImage({
  766. count: 1, // 默认9,设置图片的数量
  767. sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
  768. success: function(res) {
  769. // 返回选定照片的本地文件路径列表 tempFilePaths
  770. console.log(res.tempFilePaths);
  771. const pathUrl = res.tempFilePaths[0]
  772. uni.uploadFile({
  773. url: 'http://61.240.156.161:28188/prod-api' +
  774. "/system/file/fileupload",
  775. filePath: pathUrl,
  776. name: 'file',
  777. header: {
  778. Authorization: 'Bearer ' + uni.getStorageSync('token')
  779. },
  780. success: (response) => {
  781. console.log('1111111111111111')
  782. console.log('96+', response.data)
  783. console.log(that.rowThis)
  784. let dataFile = JSON.parse(response.data)
  785. that.rowThis.ywFileList.push(dataFile.data)
  786. // if (this.rowThis.ywFileList.length != 0) {
  787. // for (let i = 0; i < this.rowThis.ywFileList.length; i++) {
  788. // if (this.rowThis.ywFileList[i].response != undefined) {
  789. // this.dataSubmit.ywFileList.push(
  790. // this.rowThis.ywFileList[i].response.data
  791. // );
  792. // } else {
  793. // this.dataSubmit.ywFileList.push(this.rowThis
  794. // .ywFileList[i]);
  795. // }
  796. // }
  797. // }
  798. // this.dataSubmit.ywFileList.push()
  799. },
  800. fail: (response) => {
  801. console.log('fail', response)
  802. }
  803. })
  804. }
  805. });
  806. } else if (index.name == '从相册上传') {
  807. console.log('586', this.rowThis)
  808. uni.chooseImage({
  809. count: 1, // 默认9,设置图片的数量
  810. sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
  811. sourceType: ['album'], // 可以指定来源是相册还是相机,默认二者都有
  812. success: function(res) {
  813. // 返回选定照片的本地文件路径列表 tempFilePaths
  814. console.log(res);
  815. const pathUrl = res.tempFilePaths[0]
  816. uni.uploadFile({
  817. url: 'http://61.240.156.161:28188/prod-api' +
  818. "/system/file/fileupload",
  819. filePath: pathUrl,
  820. name: 'file',
  821. header: {
  822. Authorization: 'Bearer ' + uni.getStorageSync('token')
  823. },
  824. success: (response) => {
  825. console.log('1111111111111111')
  826. console.log('96+', response.data)
  827. console.log(that.rowThis)
  828. let dataFile = JSON.parse(response.data)
  829. that.rowThis.ywFileList.push(dataFile.data)
  830. console.log('that.rowThis.ywFileList', that.rowThis.ywFileList)
  831. },
  832. fail: (response) => {
  833. console.log('fail', response)
  834. }
  835. })
  836. }
  837. });
  838. }
  839. this.showUpload = false
  840. },
  841. infoSourceChange(val) {
  842. console.log("db_template", this.db_template);
  843. console.log('val', val);
  844. this.infoSourceContent = this.db_template[val - 1].text;
  845. },
  846. handelSelect() {
  847. uni.navigateTo({
  848. url: `/pages/zerenchushi/zerenchushi`
  849. })
  850. },
  851. confirmOne(e) {
  852. this.content.doneTime = e[0]
  853. this.showDate = false
  854. },
  855. typeChange(e) {
  856. if (this.nodeId == '1701') {
  857. this.showDate = true
  858. this.typeDate = e
  859. }
  860. },
  861. // 信息来源
  862. getDictsInfo() {
  863. uni.$u.http.get('/system/dict/data/type/info_source').then(res => {
  864. this.InfoList = res.data.map((item, index) => {
  865. let obj = {
  866. value: item.dictValue,
  867. id: item.dictValue,
  868. text: item.dictLabel
  869. }
  870. return obj
  871. })
  872. })
  873. uni.$u.http.get('/system/dict/data/type/db_template').then(res => {
  874. this.db_template = res.data.map((item, index) => {
  875. let obj = {
  876. value: item.dictValue,
  877. id: item.dictValue,
  878. text: item.dictLabel
  879. }
  880. return obj
  881. })
  882. })
  883. },
  884. getJindu() {
  885. uni.$u.http.get('/system/dict/data/type/progress_eva').then(res => {
  886. this.progress_eva = res.data.map((item, index) => {
  887. let obj = {
  888. value: item.dictValue,
  889. id: item.dictValue,
  890. text: item.dictLabel
  891. }
  892. return obj
  893. })
  894. })
  895. },
  896. submitNodeTurn() {
  897. if (this.content.msg != '' && this.content.msg != null && this.content.msg != undefined) {
  898. this.YorN = "2";
  899. this.content.toNodeId = '2004'
  900. this.content.reviewMsg = this.content.msg
  901. console.log('this.content', this.content)
  902. console.log('nodeId', this.nodeId)
  903. uni.$u.http.post("/offcial/receive/sendFlowToUsers", this.content, {
  904. header: {
  905. // 'content-Type: 'multipart/form-data'
  906. 'content-Type': 'application/x-www-form-urlencoded'
  907. }
  908. }).then(res => {
  909. console.log('11111', res)
  910. // uni.hideLoading()
  911. if (res.data.VarAcceptersName != "" && res.data.VarAcceptersName != "结束") {
  912. uni.showToast({
  913. title: "已发送到" + res.data.VarToNodeName + "节点,接收人:" + res
  914. .data.VarAcceptersName,
  915. icon: "none",
  916. mask: true,
  917. duration: 3000
  918. })
  919. } else if (res.data.VarAcceptersName == "结束") {
  920. uni.showToast({
  921. title: res.data.Message,
  922. icon: "none",
  923. mask: true,
  924. duration: 3000
  925. })
  926. } else {
  927. uni.showToast({
  928. title: res.data.Message.replace(/[@]/g, ""),
  929. icon: "none",
  930. mask: true,
  931. duration: 3000
  932. })
  933. }
  934. uni.$u.http.post("duty/dutyAdjust/updateYwDutyAdjustAudit", {
  935. workId: this.workid,
  936. status: this.YorN,
  937. msg: this.content.reviewMsg,
  938. }, {
  939. header: {
  940. // 'content-Type: 'multipart/form-data'
  941. 'content-Type': 'application/x-www-form-urlencoded'
  942. }
  943. })
  944. if (this.YorN == 1) {
  945. uni.$u.http.post('/duty/dutyAdjust/execAdjustDuty', {
  946. workId: this.workid,
  947. }, {
  948. header: {
  949. // 'content-Type: 'multipart/form-data'
  950. 'content-Type': 'application/x-www-form-urlencoded'
  951. }
  952. })
  953. }
  954. uni.$emit('query', {
  955. a: 'back'
  956. })
  957. setTimeout(() => {
  958. uni.navigateBack()
  959. }, 2000)
  960. }).catch(res => {
  961. console.log('555', res)
  962. uni.hideLoading()
  963. uni.showToast({
  964. title: "请稍后重试",
  965. icon: "none"
  966. })
  967. })
  968. } else {
  969. uni.showToast({
  970. title: "请输入拒绝原因",
  971. icon: "none"
  972. })
  973. }
  974. },
  975. // 拒绝
  976. turnDown() {
  977. this.show1 = true
  978. },
  979. click(e) {
  980. this.current = e.index
  981. },
  982. //查询收文详情
  983. getContent(id) {
  984. console.log(id)
  985. if (this.fkFlow == '006') {
  986. uni.$u.http.get('/system/work/sel/' + id).then(res => {
  987. console.log(res)
  988. this.content = res.data
  989. this.content.workid = this.workid
  990. if (this.gdType == true) {
  991. this.content.typeId = null //归档分类
  992. this.content.archiveNo = null //档案编号
  993. this.content.archiveFormNo = null
  994. this.content.printNum = null //打印份数
  995. this.content.name = res.data.title //档案名称
  996. this.content.gdtype = null //分类名称
  997. }
  998. if (this.type == 0) {
  999. this.isOver(this.parameter)
  1000. this.getBackNo(this.parameter.nodeId)
  1001. }
  1002. })
  1003. } else if (this.fkFlow == '007') {
  1004. uni.$u.http.get('/system/registration/sel/' + id).then(res => {
  1005. // console.log(res)
  1006. this.content = res.data
  1007. this.content.workid = this.workid
  1008. if (this.gdType == true) {
  1009. this.content.typeId = null //归档分类
  1010. this.content.archiveNo = null //档案编号
  1011. this.content.archiveFormNo = null
  1012. this.content.printNum = null //打印份数
  1013. this.content.name = res.data.title //档案名称
  1014. this.content.gdtype = null //分类名称
  1015. }
  1016. if (this.type == 0) {
  1017. this.isOver(this.parameter)
  1018. this.getBackNo(this.parameter.nodeId)
  1019. }
  1020. })
  1021. } else if (this.fkFlow == '009') {
  1022. uni.$u.http.get('/oa/leave/sel/' + id).then(res => {
  1023. this.content = res.data
  1024. this.content.workid = this.workid
  1025. if (this.gdType == true) {
  1026. this.content.typeId = null //归档分类
  1027. this.content.archiveNo = null //档案编号
  1028. this.content.archiveFormNo = null
  1029. this.content.printNum = null //打印份数
  1030. this.content.name = res.data.title //档案名称
  1031. this.content.gdtype = null //分类名称
  1032. }
  1033. if (this.type == 0) {
  1034. this.isOver(this.parameter)
  1035. this.getBackNo(this.parameter.nodeId)
  1036. }
  1037. })
  1038. } else if (this.fkFlow == '015') {
  1039. uni.$u.http.get('/offcial/car/sel/' + id).then(res => {
  1040. this.content = res.data
  1041. this.content.workid = this.workid
  1042. if (this.gdType == true) {
  1043. this.content.typeId = null //归档分类
  1044. this.content.archiveNo = null //档案编号
  1045. this.content.archiveFormNo = null
  1046. this.content.printNum = null //打印份数
  1047. this.content.name = res.data.title //档案名称
  1048. this.content.gdtype = null //分类名称
  1049. }
  1050. if (this.type == 0) {
  1051. this.isOver(this.parameter)
  1052. this.getBackNo(this.parameter.nodeId)
  1053. }
  1054. })
  1055. } else if (this.fkFlow == '020') {
  1056. uni.$u.http.post('/duty/dutyAdjust/getLastDutyAdjustByUserId/app/' + id).then(res => {
  1057. this.content = res.data
  1058. this.content.workid = this.workid
  1059. if (this.gdType == true) {
  1060. this.content.typeId = null //归档分类
  1061. this.content.archiveNo = null //档案编号
  1062. this.content.archiveFormNo = null
  1063. this.content.printNum = null //打印份数
  1064. this.content.name = res.data.title //档案名称
  1065. this.content.gdtype = null //分类名称
  1066. }
  1067. console.log('type', this.type)
  1068. if (this.type == 0) {
  1069. this.isOver(this.parameter)
  1070. this.getBackNo(this.parameter.nodeId)
  1071. }
  1072. })
  1073. } else if (this.fkFlow == '017' || this.fkFlow == '018') {
  1074. uni.$u.http.get('/offcial/seal/sel/' + id).then(res => {
  1075. this.content = res.data
  1076. console.log('‘,', this.content)
  1077. this.rowThis.ywFileList.push(this.content.fuJianFile)
  1078. this.content.workid = this.workid
  1079. if (this.gdType == true) {
  1080. this.content.typeId = null //归档分类
  1081. this.content.archiveNo = null //档案编号
  1082. this.content.archiveFormNo = null
  1083. this.content.printNum = null //打印份数
  1084. this.content.name = res.data.title //档案名称
  1085. this.content.gdtype = null //分类名称
  1086. }
  1087. console.log('type', this.type)
  1088. if (this.type == 0) {
  1089. this.isOver(this.parameter)
  1090. this.getBackNo(this.parameter.nodeId)
  1091. }
  1092. })
  1093. } else if (this.fkFlow == '016') {
  1094. console.log('id', id)
  1095. uni.$u.http.get('/offcial/supervision/sel/' + id).then(res => {
  1096. // console.log(res)
  1097. this.content = res.data
  1098. this.content.workid = this.workid
  1099. if (this.gdType == true) {
  1100. this.content.typeId = null //归档分类
  1101. this.content.archiveNo = null //档案编号
  1102. this.content.archiveFormNo = null
  1103. this.content.printNum = null //打印份数
  1104. this.content.name = res.data.title //档案名称
  1105. this.content.gdtype = null //分类名称
  1106. }
  1107. if (this.type == 0) {
  1108. this.isOver(this.parameter)
  1109. this.getBackNo(this.parameter.nodeId)
  1110. }
  1111. })
  1112. }
  1113. },
  1114. // 查询请假类型
  1115. getDicts() {
  1116. uni.$u.http.get('/system/dict/data/type/leave_type').then(res => {
  1117. this.statusList = res.data.map((item, index) => {
  1118. let obj = {
  1119. value: item.dictValue,
  1120. id: item.dictValue,
  1121. text: item.dictLabel
  1122. }
  1123. return obj
  1124. })
  1125. })
  1126. },
  1127. // 印章类型
  1128. getDictsYongzhang() {
  1129. uni.$u.http.get('/system/dict/data/type/signet_type').then(res => {
  1130. this.yongzhangList = res.data.map((item, index) => {
  1131. let obj = {
  1132. value: item.dictValue,
  1133. id: item.dictValue,
  1134. text: item.dictLabel
  1135. }
  1136. return obj
  1137. })
  1138. })
  1139. },
  1140. //保存归档
  1141. save() {
  1142. if (this.content.typeId == null) {
  1143. uni.showToast({
  1144. title: "请选择归档分类",
  1145. icon: "none"
  1146. })
  1147. } else {
  1148. this.content.reviewMsg = "同意"
  1149. uni.showLoading({
  1150. title: "提交中...",
  1151. mask: true
  1152. })
  1153. this.content.archiveFormNo = this.fkFlow
  1154. uni.$u.http.post("/offcial/archive/save", this.content).then(res => {
  1155. uni.$u.http.get('/jflow/restful/GenerNextStepAllNode', {
  1156. params: {
  1157. workid: this.parameter.workid,
  1158. token: uni.getStorageSync('jtoken'),
  1159. flowNo: this.parameter.flowNo,
  1160. }
  1161. }).then(qwe => {
  1162. uni.hideLoading()
  1163. uni.showToast({
  1164. title: "归档成功",
  1165. icon: "none",
  1166. mask: true,
  1167. duration: 2000
  1168. })
  1169. console.log('nodeId', this.nodeId)
  1170. // if (this.nodeId == '2004') {
  1171. // console.log('2222')
  1172. // uni.$u.http.post("duty/dutyAdjust/updateYwDutyAdjustAudit", {
  1173. // workId: this.workid,
  1174. // status: this.YorN,
  1175. // msg: this.content.reviewMsg,
  1176. // }, {
  1177. // header: {
  1178. // // 'content-Type: 'multipart/form-data'
  1179. // 'content-Type': 'application/x-www-form-urlencoded'
  1180. // }
  1181. // })
  1182. // if (this.YorN == 1) {
  1183. // uni.$u.http.post('/duty/dutyAdjust/execAdjustDuty', {
  1184. // workId: this.workid,
  1185. // }, {
  1186. // header: {
  1187. // // 'content-Type: 'multipart/form-data'
  1188. // 'content-Type': 'application/x-www-form-urlencoded'
  1189. // }
  1190. // }).then((res)=>{
  1191. // console.log('AAAAAAAAAAAAAAAAAAAAAAAAAAA')
  1192. // })
  1193. // }
  1194. // }
  1195. uni.$emit('query', {
  1196. a: 'back'
  1197. })
  1198. setTimeout(() => {
  1199. uni.navigateBack()
  1200. }, 3000)
  1201. })
  1202. }).catch(res => {
  1203. uni.hideLoading()
  1204. uni.showToast({
  1205. title: "请稍后重试",
  1206. icon: "none"
  1207. })
  1208. })
  1209. }
  1210. },
  1211. //查询流转记录
  1212. getRecord(id) {
  1213. uni.$u.http.get('/jflow/restful/getWfGenerWorkList', {
  1214. params: {
  1215. workID: id,
  1216. token: uni.getStorageSync('jtoken')
  1217. }
  1218. }).then(res => {
  1219. // console.log(res)
  1220. this.record = res.trackList
  1221. for (let i in res.trackList) {
  1222. if (res.trackList[i].ActionType !== '28') {
  1223. if (res.trackList[i].ActionType22 != undefined) {
  1224. this.lzNum = this.lzNum + res.trackList[i].ActionType22.length
  1225. } else {
  1226. this.lzNum = this.lzNum + 1
  1227. }
  1228. }
  1229. }
  1230. if (this.type == 0) {
  1231. // this.content.jdindex = null //下一节点索引
  1232. // this.content.nodeId = null //下一节点ID
  1233. // this.content.optionName = null //节点名称
  1234. this.content.reviewMsg = null //审批意见
  1235. this.content.users = null //发送给指定人员
  1236. // this.content.toNodeId = null
  1237. this.content.userList = null //人员列表
  1238. }
  1239. })
  1240. },
  1241. //查询下一步所有节点
  1242. jdList(id, flow) {
  1243. uni.$u.http.get('/jflow/restful/GenerNextStepNode', {
  1244. params: {
  1245. workid: id,
  1246. token: uni.getStorageSync('jtoken'),
  1247. flowNo: flow
  1248. }
  1249. }).then(res => {
  1250. this.id = res[0].NodeID
  1251. this.content.jdindex = 0 //下一节点索引
  1252. this.DeliveryWay = res[0].DeliveryWay //下一节点状态
  1253. this.content.toNodeId = res[0].NodeID //下一节点ID
  1254. this.content.nodeId = res[0].NodeID //下一节点ID
  1255. this.content.optionName = res[0].Name //节点名称
  1256. this.list = res.map((item, index) => {
  1257. let obj = {
  1258. value: index,
  1259. id: item.NodeID,
  1260. text: item.Name,
  1261. DeliveryWay: item.DeliveryWay
  1262. }
  1263. return obj
  1264. })
  1265. })
  1266. },
  1267. //节点选择
  1268. change(e) {
  1269. if (e >= 0) {
  1270. this.id = this.list[e].id
  1271. this.DeliveryWay = this.list[e].DeliveryWay
  1272. this.content.toNodeId = this.list[e].id
  1273. this.content.nodeId = this.list[e].id
  1274. this.content.optionName = this.list[e].text
  1275. }
  1276. },
  1277. //选择人员相关
  1278. choosePeo() {
  1279. if (this.id == null) {
  1280. uni.showToast({
  1281. title: "请先选择下一节点",
  1282. icon: "none"
  1283. })
  1284. } else {
  1285. uni.navigateTo({
  1286. url: `/pages/peoChoose/peoChoose?workid=${this.workid}&flowNo=${this.flowNo}&id=${this.id}`,
  1287. })
  1288. }
  1289. },
  1290. //选择归档分类
  1291. chooseGd() {
  1292. uni.navigateTo({
  1293. url: "/pages/file/file"
  1294. })
  1295. },
  1296. //判断是否为最后一步
  1297. isOver(v) {
  1298. uni.$u.http.get("/jflow/restful/judgeNode", {
  1299. params: {
  1300. nodeId: v.nodeId
  1301. }
  1302. }).then(res => {
  1303. if (res.msg == "Y") {
  1304. this.overType = true
  1305. } else {
  1306. console.log('111111111111111')
  1307. this.overType = false
  1308. this.jdList(v.workid, v.flowNo)
  1309. }
  1310. })
  1311. },
  1312. //提交待办
  1313. submit() {
  1314. console.log(this.nodeId)
  1315. if (this.overType == false && this.id == null) {
  1316. uni.showToast({
  1317. title: "请先选择下一节点",
  1318. icon: "none"
  1319. })
  1320. } else if (this.nodeId != '1605') {
  1321. if (this.content.reviewMsg == null && this.content.msg == null) {
  1322. uni.showToast({
  1323. title: "请填写审核意见",
  1324. icon: "none"
  1325. })
  1326. }
  1327. console.log('1111111111111111111')
  1328. this.YorN = "1";
  1329. uni.showLoading({
  1330. title: "提交中...",
  1331. mask: true
  1332. })
  1333. if (this.fkFlow == '009') {
  1334. uni.$u.http.post("/oa/leave/sendNextSteep", this.content, {
  1335. header: {
  1336. // 'content-Type: 'multipart/form-data'
  1337. 'content-Type': 'application/x-www-form-urlencoded'
  1338. }
  1339. }).then(res => {
  1340. // console.log(res)
  1341. // uni.hideLoading()
  1342. if (res.data.VarAcceptersName != "" && res.data.VarAcceptersName != "结束") {
  1343. uni.showToast({
  1344. title: "已发送到" + res.data.VarToNodeName + "节点,接收人:" + res
  1345. .data.VarAcceptersName,
  1346. icon: "none",
  1347. mask: true,
  1348. duration: 3000
  1349. })
  1350. } else if (res.data.VarAcceptersName == "结束") {
  1351. uni.showToast({
  1352. title: res.data.Message,
  1353. icon: "none",
  1354. mask: true,
  1355. duration: 3000
  1356. })
  1357. } else {
  1358. uni.showToast({
  1359. title: res.data.Message.replace(/[@]/g, ""),
  1360. icon: "none",
  1361. mask: true,
  1362. duration: 3000
  1363. })
  1364. }
  1365. console.log('nodeId', this.nodeId)
  1366. if (this.content.nodeId == '2004') {
  1367. console.log('2222')
  1368. uni.$u.http.post("duty/dutyAdjust/updateYwDutyAdjustAudit", {
  1369. workId: this.workid,
  1370. status: this.YorN,
  1371. msg: this.content.reviewMsg,
  1372. }, {
  1373. header: {
  1374. // 'content-Type: 'multipart/form-data'
  1375. 'content-Type': 'application/x-www-form-urlencoded'
  1376. }
  1377. })
  1378. if (this.YorN == 1) {
  1379. uni.$u.http.post('/duty/dutyAdjust/execAdjustDuty', {
  1380. workId: this.workid,
  1381. }, {
  1382. header: {
  1383. // 'content-Type: 'multipart/form-data'
  1384. 'content-Type': 'application/x-www-form-urlencoded'
  1385. }
  1386. })
  1387. }
  1388. }
  1389. uni.$emit('query', {
  1390. a: 'back'
  1391. })
  1392. setTimeout(() => {
  1393. uni.navigateBack()
  1394. }, 2000)
  1395. }).catch(res => {
  1396. // console.log(res)
  1397. uni.hideLoading()
  1398. uni.showToast({
  1399. title: "请稍后重试",
  1400. icon: "none"
  1401. })
  1402. })
  1403. } else {
  1404. if (this.nodeId == '1701') {
  1405. if (this.content.users == null || this.content.users == undefined || this
  1406. .content.users == '') {
  1407. uni.showToast({
  1408. title: "请选择接收人",
  1409. icon: "none"
  1410. })
  1411. uni.hideLoading()
  1412. return
  1413. } else {
  1414. this.content.fileId = this.rowThis.ywFileList[0].fileId
  1415. uni.$u.http.put('/offcial/seal', this.content).then((res) => {
  1416. console.log(res)
  1417. })
  1418. }
  1419. }
  1420. uni.$u.http.post("/offcial/receive/sendFlowToUsers", this.content, {
  1421. header: {
  1422. // 'content-Type: 'multipart/form-data'
  1423. 'content-Type': 'application/x-www-form-urlencoded'
  1424. }
  1425. }).then(res => {
  1426. console.log('11111', res)
  1427. // uni.hideLoading()
  1428. if (res.data.VarAcceptersName != "" && res.data.VarAcceptersName != "结束") {
  1429. uni.showToast({
  1430. title: "已发送到" + res.data.VarToNodeName + "节点,接收人:" + res
  1431. .data.VarAcceptersName,
  1432. icon: "none",
  1433. mask: true,
  1434. duration: 3000
  1435. })
  1436. } else if (res.data.VarAcceptersName == "结束") {
  1437. uni.showToast({
  1438. title: res.data.Message,
  1439. icon: "none",
  1440. mask: true,
  1441. duration: 3000
  1442. })
  1443. } else {
  1444. uni.showToast({
  1445. title: res.data.Message.replace(/[@]/g, ""),
  1446. icon: "none",
  1447. mask: true,
  1448. duration: 3000
  1449. })
  1450. }
  1451. console.log('nodeId', this.nodeId)
  1452. if (this.content.nodeId == '2004') {
  1453. console.log('2222')
  1454. uni.$u.http.post("duty/dutyAdjust/updateYwDutyAdjustAudit", {
  1455. workId: this.workid,
  1456. status: this.YorN,
  1457. msg: this.content.reviewMsg,
  1458. }, {
  1459. header: {
  1460. // 'content-Type: 'multipart/form-data'
  1461. 'content-Type': 'application/x-www-form-urlencoded'
  1462. }
  1463. })
  1464. if (this.YorN == 1) {
  1465. uni.$u.http.post('/duty/dutyAdjust/execAdjustDuty', {
  1466. workId: this.workid,
  1467. }, {
  1468. header: {
  1469. // 'content-Type: 'multipart/form-data'
  1470. 'content-Type': 'application/x-www-form-urlencoded'
  1471. }
  1472. })
  1473. }
  1474. }
  1475. uni.$emit('query', {
  1476. a: 'back'
  1477. })
  1478. setTimeout(() => {
  1479. uni.navigateBack()
  1480. }, 2000)
  1481. }).catch(res => {
  1482. console.log('555', res)
  1483. uni.hideLoading()
  1484. uni.showToast({
  1485. title: "请稍后重试",
  1486. icon: "none"
  1487. })
  1488. })
  1489. }
  1490. }
  1491. },
  1492. //查询是否能退回
  1493. getBackNo(id) {
  1494. uni.$u.http.get("/jflow/restful/CurrNodeInfo?currNodeID=" + id).then(res => {
  1495. // console.log(res)
  1496. if (res[0].ReturnRole != 0) {
  1497. this.getBackList()
  1498. this.backType = true
  1499. this.content.returnToNodeID = null
  1500. this.content.backMsg = null
  1501. }
  1502. })
  1503. },
  1504. //获取退回节点列表
  1505. getBackList() {
  1506. uni.$u.http.get("/jflow/restful/getReturnWorkNode", {
  1507. params: {
  1508. workid: this.parameter.workid,
  1509. token: uni.getStorageSync('jtoken')
  1510. }
  1511. }).then(res => {
  1512. this.backlist = res.map((item, index) => {
  1513. let obj = {
  1514. value: item.No,
  1515. id: item.No,
  1516. text: item.Name,
  1517. }
  1518. return obj
  1519. })
  1520. })
  1521. },
  1522. //退回上一节点
  1523. back() {
  1524. if (this.content.returnToNodeID == null) {
  1525. uni.showToast({
  1526. title: "请选择退回节点",
  1527. icon: "none"
  1528. })
  1529. } else if (this.content.backMsg == null) {
  1530. uni.showToast({
  1531. title: "请填写退回意见",
  1532. icon: "none"
  1533. })
  1534. } else {
  1535. uni.showLoading({
  1536. title: "退回中...",
  1537. })
  1538. uni.$u.http.get("/offcial/receive/NodeReturnWork", {
  1539. params: {
  1540. workid: this.parameter.workid,
  1541. returnToNodeID: this.content.returnToNodeID,
  1542. returnMsg: this.content.backMsg
  1543. }
  1544. }).then(res => {
  1545. uni.hideLoading()
  1546. this.close()
  1547. uni.showToast({
  1548. title: res,
  1549. icon: "none",
  1550. duration: 2000
  1551. })
  1552. uni.$emit('query', {
  1553. a: 'back'
  1554. })
  1555. setTimeout(() => {
  1556. uni.navigateBack()
  1557. }, 2000)
  1558. }).catch(error => {
  1559. uni.hideLoading()
  1560. uni.showToast({
  1561. title: "请稍后重试",
  1562. icon: "none"
  1563. })
  1564. })
  1565. }
  1566. },
  1567. //关闭模态框
  1568. close() {
  1569. this.content.returnToNodeID = null
  1570. this.content.backMsg = null
  1571. this.content.msg = null
  1572. this.content.reviewMsg = null
  1573. this.show1 = false
  1574. this.show = false
  1575. }
  1576. }
  1577. }
  1578. </script>
  1579. <style lang="scss" scoped>
  1580. .content {
  1581. font-size: 32rpx;
  1582. }
  1583. .tab {
  1584. width: 48%;
  1585. height: 100%;
  1586. box-sizing: border-box;
  1587. display: flex;
  1588. align-items: center;
  1589. justify-content: center;
  1590. }
  1591. .active {
  1592. color: #2979ff
  1593. }
  1594. </style>