return.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. <template>
  2. <view class="page">
  3. <view class="vtitle">归还信息</view>
  4. <view class="form_group">
  5. <view class="lable">扫码</view>
  6. <view class="tag" @click="qr()">
  7. <text class="span" style="width: 90%;">{{ code }}</text>
  8. <text class="icon code">&#xe60e;</text>
  9. </view>
  10. </view>
  11. <view class="form_group" v-if="op == '设备借用11'">
  12. <view class="lable">设备所属部门</view>
  13. <view class="tag">
  14. <view class="span">
  15. <picker @change="bindChange($event, 'dept')" :range="array1">
  16. <view class="picks">{{ item.dept ? item.dept : '选择2' }}</view>
  17. </picker>
  18. </view>
  19. <text class="icon more">&#xe631;</text>
  20. </view>
  21. </view>
  22. <view class="form_group">
  23. <view class="lable">归还者</view>
  24. <view class="tag">
  25. <input v-model="item.ghz" placeholder="归还者" />
  26. <text class="icon more">&#xe631;</text>
  27. </view>
  28. </view>
  29. <view class="form_group">
  30. <view class="lable">手机号</view>
  31. <view class="tag">
  32. <input v-model="item.tel" placeholder="输入手机号" />
  33. <text class="icon more">&#xe631;</text>
  34. </view>
  35. </view>
  36. <view class="vtitle">归还设备信息</view>
  37. <view v-for="(item, index) in list" :key="index" class="item" v-if="id==null">
  38. <view class="form_group">
  39. <view class="lable">序号</view>
  40. <view class="tag">
  41. <text class="span">{{ index + 1 }}</text>
  42. </view>
  43. </view>
  44. <view class="form_group">
  45. <view class="lable">计量编号</view>
  46. <view class="tag">
  47. <text class="span">{{ item.items.__Q0YnOcfMqiTpVsTiDEh.value }}</text>
  48. </view>
  49. </view>
  50. <view class="form_group">
  51. <view class="lable">设备名称</view>
  52. <view class="tag">
  53. <text class="span">{{ item.items.__khn9SQnzgWNPt0aHldp.value }}</text>
  54. </view>
  55. </view>
  56. <view class="form_group">
  57. <view class="lable">型号规格</view>
  58. <view class="tag">
  59. <text class="span">{{ item.items.__fpUc5yOsHgSHeHPFHim.value }}</text>
  60. </view>
  61. </view>
  62. <view class="form_group">
  63. <view class="lable">测量范围</view>
  64. <view class="tag">
  65. <text class="span">{{ item.items.__soGLIaAxvM0O0NTVt1c.value }}</text>
  66. </view>
  67. </view>
  68. <view class="form_group">
  69. <view class="lable">制造商</view>
  70. <view class="tag">
  71. <text class="span">{{ item.items.__aPTYvYeakxz299A7Thk.value }}</text>
  72. </view>
  73. </view>
  74. <view class="form_group">
  75. <view class="lable">内部编号</view>
  76. <view class="tag">
  77. <text class="span">{{ item.items.__dRIZk7xLPVCO6rqJbs7.value }}</text>
  78. </view>
  79. </view>
  80. <view class="form_group">
  81. <button class="btn del" @click="del(item)">移除</button>
  82. </view>
  83. </view>
  84. <view v-for="(item, index) in list" :key="index" class="item" v-else>
  85. <view class="form_group">
  86. <view class="lable">序号</view>
  87. <view class="tag">
  88. <text class="span">{{ index + 1 }}</text>
  89. </view>
  90. </view>
  91. <view class="form_group">
  92. <view class="lable">计量编号</view>
  93. <view class="tag">
  94. <text class="span">{{ item.items.__1JzPv6GIMZUCGKYm2gx.value }}</text>
  95. </view>
  96. </view>
  97. <view class="form_group">
  98. <view class="lable">设备名称</view>
  99. <view class="tag">
  100. <text class="span">{{ item.items.__ngDKJEL3uIYQyjjFJMh.value }}</text>
  101. </view>
  102. </view>
  103. <view class="form_group">
  104. <view class="lable">型号规格</view>
  105. <view class="tag">
  106. <text class="span">{{ item.items.__apS4rWwLmvscx5ZUkLQ.value }}</text>
  107. </view>
  108. </view>
  109. <view class="form_group">
  110. <view class="lable">测量范围</view>
  111. <view class="tag">
  112. <text class="span">{{ item.items.__DjZGdE1GZEj1OUWhWuK.value }}</text>
  113. </view>
  114. </view>
  115. <view class="form_group">
  116. <view class="lable">制造商</view>
  117. <view class="tag">
  118. <text class="span">{{ item.items.__1yBwYFItXGQo6CoGTZs.value }}</text>
  119. </view>
  120. </view>
  121. <view class="form_group">
  122. <view class="lable">内部编号</view>
  123. <view class="tag">
  124. <text class="span">{{ item.items.__JjSPjH2TqMtxQjHcTY9.value }}</text>
  125. </view>
  126. </view>
  127. <view class="form_group">
  128. <!--<button class="btn del" @click="del(item)">移除</button>-->
  129. </view>
  130. </view>
  131. <u-empty v-if="list.length == 0"></u-empty>
  132. <view class="footer">
  133. <view class="flex">
  134. <view class="f"><button class="btn br" @click="submission()">提交</button></view>
  135. <!-- <view class="f" v-if="state == 1"><button class="btn br back" @click="back()">回退</button></view>
  136. <view class="f"><button class="btn" @click="validate()">保存</button></view>-->
  137. </view>
  138. </view>
  139. <u-popup :show="show" mode="bottom" @close="show = false" closeable round="15">
  140. <view class="popup">
  141. <u-divider text="提交流程面板"></u-divider>
  142. <scroll-view scroll-y="true" style="height: 300rpx;">
  143. <view v-for="(item, index) in nextNodes" :key="index" class="bitem"
  144. @click="bselect(item, 'nextNodes')">
  145. <view class="icon select check" v-if="item.check">&#xe600;</view>
  146. <view class="icon select" v-else>&#xe8bb;</view>
  147. <view class="title">{{ item.name }}</view>
  148. </view>
  149. </scroll-view>
  150. <view class="confrim-btn"><button class="btn" @click="submit()">确定</button></view>
  151. </view>
  152. </u-popup>
  153. <u-popup :show="bshow" mode="bottom" @close="bshow = false" closeable round="15">
  154. <view class="popup">
  155. <u-divider text="回退流程面板"></u-divider>
  156. <scroll-view scroll-y="true" style="height: 300rpx;">
  157. <view v-for="(item, index) in backNodes" :key="index" class="bitem"
  158. @click="bselect(item, 'backNodes')">
  159. <view class="icon select check" v-if="item.check">&#xe600;</view>
  160. <view class="icon select" v-else>&#xe8bb;</view>
  161. <view class="title">{{ item.name }}</view>
  162. </view>
  163. </scroll-view>
  164. <view class="confrim-btn"><button class="btn" @click="workflowsback()">确定</button></view>
  165. </view>
  166. </u-popup>
  167. </view>
  168. </template>
  169. <script>
  170. let qrcode = require('@/common/code.js');
  171. export default {
  172. data() {
  173. return {
  174. bitem: {
  175. applicationId: '__gAPYBW4YxB3UePM3lqO',
  176. exparams: {},
  177. formId: '__0FLGNncOS1lz0T9jsFn',
  178. id: '__79Wtw03ya4dJUDGPyAN',
  179. isRelate: 'true',
  180. parentId: '',
  181. sign: '',
  182. subDocuments: [],
  183. templateForm: '',
  184. versions: '0'
  185. },
  186. btitem: {
  187. applicationId: '__gAPYBW4YxB3UePM3lqO',
  188. exparams: {},
  189. formId: '__0FLGNncOS1lz0T9jsFn',
  190. id: '__79Wtw03ya4dJUDGPyAN',
  191. isRelate: 'true',
  192. parentId: '',
  193. sign: '',
  194. subDocuments: [],
  195. templateForm: '',
  196. versions: '0'
  197. },
  198. geteq: {
  199. DEVID: '',
  200. allow: 'false',
  201. appId: '__gAPYBW4YxB3UePM3lqO',
  202. datetime: '1670485443880',
  203. detp: '',
  204. fieldid: '__iLwKGJTxD89ZKnFzo2Y',
  205. formId: '__w9J1gxcIWgXmNw6pE1F',
  206. isEdit: 'true',
  207. mutil: 'true',
  208. parentId: '__NYI0rVs0LXbiW21z6Nv',
  209. searchForm: 'false',
  210. selectOne: 'false',
  211. viewId: '__ajlFXbohdIXtn7ErzZq'
  212. },
  213. item: {},
  214. op: '设备归还',
  215. current: 0,
  216. code: '',
  217. list: [],
  218. id: '',
  219. show: false,
  220. bshow: false,
  221. itemt: {},
  222. up: {},
  223. content: '标题',
  224. nextNodes: [],
  225. backNodes: [],
  226. items: {
  227. document: {
  228. items: {}
  229. }
  230. },
  231. runViewDialogConfirmScript: {
  232. docId: "__DIl607e1fsiknRgGRQj",
  233. document: {
  234. items: {
  235. group: "",
  236. depttool: "",
  237. UNIT: "柳工",
  238. borrower: "",
  239. tel: "",
  240. remarks: ""
  241. },
  242. },
  243. fieldId: "__0TQu1UrRbMZVX1UvtBL",
  244. formId: "__w9J1gxcIWgXmNw6pE1F",
  245. viewId: "__ajlFXbohdIXtn7ErzZq",
  246. _selects: "__sIJiL5GlxEYoL095Vo9",
  247. },
  248. };
  249. },
  250. onLoad(e) {
  251. this.op = e.op;
  252. this.id = e.id;
  253. if (e.ste == 1) {
  254. /* this.http.request({
  255. url: this.http.urls.xxxx + e.id,
  256. success: res => {
  257. this.item = res.data.data;
  258. }
  259. }); */
  260. this.getDocuments();
  261. } else{
  262. this.empty();
  263. }
  264. //选中审批人员监听函数,其它类型的参考这个
  265. uni.$on('select', res => {
  266. console.log('asd:' + JSON.stringify(res));
  267. });
  268. },
  269. onReady() {
  270. uni.setNavigationBarTitle({
  271. title: this.op
  272. });
  273. },
  274. methods: {
  275. //提交或回退
  276. bselect(e, tag) {
  277. this[tag].forEach(item => {
  278. item.check = false;
  279. });
  280. e.check = true;
  281. this.itemt.nextNodeIds = [];
  282. this.itemt.nextNodeIds.push(e.id);
  283. this.$forceUpdate();
  284. }, //详情
  285. qr() {
  286. // 调用uni提供的调用相机api
  287. uni.chooseImage({
  288. sizeType: ['original'],
  289. sourceType: ['camera'],
  290. count: 1,
  291. success: res => {
  292. const tempFilePaths = res.tempFilePaths[0]; // 获取到二维码图片的链接
  293. qrcode.decode(tempFilePaths); // 解析二维码图片
  294. qrcode.callback = r => {
  295. var r1=r.split('*')[1]
  296. this.code = r1;
  297. this.geteq.DEVID = this.code;
  298. if (this.list.length == 0) {
  299. console.log('getEq:1');
  300. this.getEq();
  301. } else {
  302. this.list.forEach(item => {
  303. if (item.items.__O1qcaazksjAzDcrvJLk.value == this.geteq
  304. .DEVID) {
  305. uni.showModal({
  306. title: '提示',
  307. content: '该设备已经选择过了',
  308. showCancel: false,
  309. success: res => {
  310. if (res.confirm) {
  311. // uni.navigateBack();
  312. }
  313. }
  314. });
  315. } else {
  316. console.log('getEq:2');
  317. this.getEq();
  318. }
  319. });
  320. }
  321. console.log('asd:' + r);
  322. this.$forceUpdate();
  323. };
  324. }
  325. });
  326. },
  327. //选择结果形式
  328. change(e) {
  329. this.current = e;
  330. console.log('aa:' + this.radio[this.current].name);
  331. },
  332. //选择实验类型
  333. bindChange(e, type) {
  334. this.item[type] = this.array1[e.target.value];
  335. this.$forceUpdate();
  336. },
  337. //选择审批人员
  338. select() {
  339. uni.navigateTo({
  340. url: '/pages/index/select'
  341. });
  342. },
  343. getEq() {
  344. this.http.request({
  345. url: this.http.urls.re_list +
  346. 'parentId=' +
  347. this.geteq.parentid,
  348. data: this.geteq,
  349. method: 'POST',
  350. success: res => {
  351. console.log('res2:' + JSON.stringify(res.data.data.data));
  352. if (res.data.errcode == 0) {
  353. res.data.data.data.forEach(item => {
  354. this.list.push(item);
  355. });
  356. }
  357. }
  358. });
  359. },
  360. empty() {
  361. this.http.request({
  362. url: this.http.urls.return_empty,
  363. data: this.item,
  364. success: res => {
  365. //console.log('res2:' + JSON.stringify(res));
  366. this.item = res.data.data.items;
  367. this.bitem.id = res.data.data.id;
  368. this.bitem.formId = res.data.data.formid;
  369. this.bitem.versions = res.data.data.versions;
  370. this.geteq.parentid = res.data.data.id;
  371. //创建时组建提交流程面板请求数据
  372. this.iteml = res.data.data;
  373. this.items.applicationId = '__gAPYBW4YxB3UePM3lqO';
  374. this.items.docId = this.iteml.id;
  375. this.items.id = this.iteml.id;
  376. this.items.formId = this.iteml.formid;
  377. this.items.parentId = '';
  378. this.items.subSelects = [];
  379. this.items.templateForm = '';
  380. this.items.viewId = '';
  381. this.items.document.items = this.item;
  382. this.items.document.applicationId = '__gAPYBW4YxB3UePM3lqO';
  383. this.items.document.exparams = {};
  384. this.items.document.formId = this.iteml.formid;
  385. this.items.document.id = this.iteml.id;
  386. this.items.document.parentId = '';
  387. this.items.document.sign = '';
  388. this.items.document.stateId = this.iteml.stateid;
  389. this.items.document.subDocuments = [];
  390. this.items.document.templateForm = '';
  391. this.items.document.versions = '0';
  392. }
  393. });
  394. },
  395. //移除借用设备信息
  396. del(item) {
  397. this.list.splice(this.list.indexOf(item), 1);
  398. },
  399. //详情
  400. getDocuments() {
  401. this.http.request({
  402. url: this.http.urls.documents + this.id,
  403. data: this.item,
  404. success: res => {
  405. this.item = res.data.data.items;
  406. //this.p = res.data.data;
  407. this.ghlis_list();
  408. this.iteml = res.data.data;
  409. this.items.applicationId = '__gAPYBW4YxB3UePM3lqO';
  410. this.items.docId = this.iteml.id;
  411. this.items.id = this.iteml.id;
  412. this.items.formId = this.iteml.formid;
  413. this.items.parentId = '';
  414. this.items.subSelects = [];
  415. this.items.templateForm = '';
  416. this.items.viewId = '';
  417. this.items.document.items = this.item;
  418. this.items.document.applicationId = '__gAPYBW4YxB3UePM3lqO';
  419. this.items.document.exparams = {};
  420. this.items.document.formId = this.iteml.formid;
  421. this.items.document.id = this.iteml.id;
  422. this.items.document.parentId = '';
  423. this.items.document.sign = '';
  424. this.items.document.stateId = this.iteml.stateid;
  425. this.items.document.subDocuments = [];
  426. this.items.document.templateForm = '';
  427. this.items.document.versions = '0';
  428. }
  429. });
  430. },
  431. ghlis_list() {
  432. this.http.request({
  433. url: this.http.urls.ghlis_list +
  434. 'parentId=' +
  435. this.id,
  436. method: 'POST',
  437. success: res => {
  438. console.log('res2:' + JSON.stringify(res));
  439. if (res.data.errcode == 0) {
  440. res.data.data.data.forEach(item => {
  441. this.list.push(item);
  442. });
  443. }
  444. }
  445. });
  446. },
  447. ghls_empty() {
  448. this.list.forEach(item => {
  449. this.http.request({
  450. url: this.http.urls.ghls_empty,
  451. data: this.item,
  452. success: res => {
  453. //this.item = res.data.data.items;
  454. console.log('this.bitem:' + JSON.stringify(this.bitem));
  455. this.btitem.id = res.data.data.id;
  456. this.btitem.formId = res.data.data.formid;
  457. this.btitem.versions = res.data.data.versions;
  458. this.btitem.parentId = this.bitem.id;
  459. //this.btitem.parent=this.bitem.id;
  460. this.btitem.items = res.data.data.items;
  461. this.btitem.items.DEVID = item.items.__O1qcaazksjAzDcrvJLk.value;//1
  462. this.btitem.items.EQUNR = item.items.__Q0YnOcfMqiTpVsTiDEh.value; //1
  463. this.btitem.items.EQKTX = item.items.__khn9SQnzgWNPt0aHldp.value; //1
  464. this.btitem.items.TYPBZ = item.items.__fpUc5yOsHgSHeHPFHim.value; //1
  465. this.btitem.items.CLFW = item.items.__soGLIaAxvM0O0NTVt1c.value; //1
  466. this.btitem.items.NPLDA = item.items.__G47scKcbMDon7HgDiQ5.value; //1
  467. this.btitem.items.SERGE = item.items.__3mveBfEF1si9RCAp9Sv.value; //1
  468. this.btitem.items.HERST = item.items.__aPTYvYeakxz299A7Thk.value; //1
  469. this.btitem.items.return_date = this.util.getDate('time'); //借用日期
  470. this.btitem.items.returning_state = ""; //归还状态
  471. this.btitem.items.TPLNR = item.items.__8BoEUIvmeOIjLiAwO9R.value; //1
  472. this.btitem.items.INTNUM = item.items.__dRIZk7xLPVCO6rqJbs7.value; //1
  473. this.btitem.items.NUMBER = item.items.__hImw4lGXCFmwyAx4fD8.value;//1
  474. console.log('this.btitem1:' + JSON.stringify(this.btitem));
  475. this.validate();
  476. //console.log('res2:' + JSON.stringify(res.data.data));
  477. }
  478. });
  479. });
  480. },
  481. //保存
  482. validate() {
  483. this.http.request({
  484. url: this.http.urls.validate +
  485. '?parentId=' +
  486. this.btitem.parentId,
  487. data: this.btitem,
  488. method: 'POST',
  489. success: res => {
  490. console.log('validate1:' + JSON.stringify(res));
  491. this.updateparent(this.btitem.parentId, res.data.data.id);
  492. }
  493. });
  494. },
  495. updateparent(parent, id) {
  496. this.http.request({
  497. url: this.http.urls.ip2 + '/liug/app?parent=' + parent + '&id=' + id + '&table=tlk_ghlsb',
  498. method: 'POST',
  499. success: res => {
  500. console.log('validate1:' + JSON.stringify(res));
  501. }
  502. });
  503. },
  504. //提交流程面板
  505. submission() {
  506. //this.validatet();
  507. this.http.request({
  508. url: this.http.urls.documents + this.bitem.id + '/panels/submission',
  509. data: this.items,
  510. method: 'POST',
  511. success: res => {
  512. //this.item=res.data.data;
  513. //console.log('zx22:' + JSON.stringify(res));
  514. this.show = true;
  515. this.title = res.data.data.name;
  516. this.nextNodes = res.data.data.nextNodes;
  517. this.itemt.flowId = res.data.data.flowId;
  518. this.itemt.flowType = '80';
  519. this.itemt.currentNodeId = res.data.data.currentNodeId;
  520. this.itemt.attitude = '';
  521. this.itemt.signature = '';
  522. this.itemt.submitTo = '';
  523. this.itemt.circulatorInfo = '';
  524. this.itemt.subFlowApproverInfo = '';
  525. this.itemt.subFlowApproverInfoAll = '';
  526. this.itemt.document = this.items.document;
  527. //this.content=res.data.data.formname;
  528. }
  529. });
  530. }, //提交流程
  531. submit() {
  532. //this.itemt.document.items.purpose="试验目的5656";
  533. //this.itemt.document.items.title="标题5656";
  534. if (this.itemt.document.items.ghz == '' || this.itemt.document.items.ghz == null) {
  535. uni.showModal({
  536. title: '提示',
  537. content: '请填写归还人',
  538. showCancel: false,
  539. success: res => {
  540. if (res.confirm) {
  541. //uni.navigateBack();
  542. }
  543. this.ghls_empty();
  544. }
  545. });
  546. return;
  547. }
  548. /*
  549. if (this.itemt.document.items.tel == '' || this.itemt.document.items.tel == null) {
  550. uni.showModal({
  551. title: '提示',
  552. content: '请填写手机号',
  553. showCancel: false,
  554. success: res => {
  555. if (res.confirm) {
  556. //uni.navigateBack();
  557. }
  558. }
  559. });
  560. return;
  561. }
  562. */
  563. this.itemt.applicationId = '__gAPYBW4YxB3UePM3lqO';
  564. this.itemt.docId = this.iteml.id;
  565. this.itemt.id = this.iteml.id;
  566. this.itemt.formId = this.iteml.formid;
  567. this.itemt.parentId = '';
  568. this.itemt.subFlowApprover = [];
  569. this.itemt.subSelects = [];
  570. this.itemt.submitTo = [];
  571. this.itemt.templateForm = '';
  572. this.itemt.viewId = '';
  573. this.http.request({
  574. url: this.http.urls.documents + this.id + '/workflows/submit',
  575. data: this.itemt,
  576. method: 'PUT',
  577. success: res => {
  578. //this.item=res.data.data;
  579. console.log('zx22:' + JSON.stringify(res));
  580. if (res.data.errcode == 0) {
  581. uni.showModal({
  582. title: '提示',
  583. content: res.data.data,
  584. showCancel: false,
  585. success: res => {
  586. if (res.confirm) {
  587. uni.navigateBack();
  588. }
  589. }
  590. });
  591. } else {
  592. uni.showModal({
  593. title: '提示',
  594. content: res.data.errmsg,
  595. showCancel: false,
  596. success: res => {
  597. if (res.confirm) {
  598. //uni.navigateBack();
  599. }
  600. }
  601. });
  602. }
  603. this.show = false;
  604. this.title = res.data.data.name;
  605. this.nextNodes = res.data.data.nextNodes;
  606. }
  607. });
  608. }, //刷新数据
  609. //提交
  610. add() {
  611. this.http.request({
  612. url: this.http.urls.user_task_add,
  613. data: this.item,
  614. method: 'POST',
  615. success: res => {
  616. uni.showModal({
  617. title: '提示',
  618. content: '提交成功',
  619. showCancel: false,
  620. success: res => {
  621. if (res.confirm) {
  622. uni.navigateBack();
  623. }
  624. }
  625. });
  626. }
  627. });
  628. }
  629. }
  630. };
  631. </script>
  632. <style lang="scss">
  633. .page {
  634. padding-bottom: 80px;
  635. }
  636. .item {
  637. margin-bottom: 10px;
  638. }
  639. .del {
  640. width: 70%;
  641. background-color: #e64340;
  642. }
  643. </style>