setentry.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  1. <template>
  2. <view>
  3. <view class="cu-list menu margin-bottom">
  4. <view class="cu-item">
  5. <view class="content">
  6. <text class="text-gray">代理门店</text>
  7. </view>
  8. <view class="action">
  9. <text>{{broker.agent.title}}</text>
  10. </view>
  11. </view>
  12. </view>
  13. <view v-if="entry==null">
  14. <view class="cu-bar bg-white solids-bottom">
  15. <view class="action">
  16. <text class="cuIcon-titles text-blue"></text> 报备信息
  17. </view>
  18. <view class="action">
  19. <!-- <text class="text-df text-blue">扫一扫 自动识别身份证</text> -->
  20. <avatar selWidth="640rpx" selHeight="640rpx" @upload="setIdcard" :avatarSrc="$getImageUrl('static/images/applet/setidcard.png')" noTab="true" avatarStyle="width: 400rpx; height: 50rpx; border-radius: 5%;"></avatar>
  21. </view>
  22. </view>
  23. <form>
  24. <view class="cu-form-group">
  25. <view class="title">姓名</view>
  26. <input placeholder="请输入姓名..." @input="bindInput" data-val="realname" :value="forminfo.realname"></input>
  27. </view>
  28. <view class="cu-form-group">
  29. <view class="title">手机号</view>
  30. <input placeholder="请输入手机号..." @input="bindInput" data-val="mobile" :value="forminfo.mobile"></input>
  31. </view>
  32. <view class="cu-form-group">
  33. <view class="title">身份证号</view>
  34. <input placeholder="请输入身份证号..." @input="bindInput" data-val="idcard" :value="forminfo.idcard"></input>
  35. </view>
  36. <view class="cu-form-group">
  37. <view class="title">性别</view>
  38. <picker @change="genderChange" :value="forminfo.gender" :range="forminfo.genderarr">
  39. <view class="picker">
  40. {{forminfo.genderarr[forminfo.gender]}}
  41. </view>
  42. </picker>
  43. </view>
  44. <view class="cu-form-group">
  45. <view class="title">民族</view>
  46. <input placeholder="请输入民族..." @input="bindInput" data-val="nation" :value="forminfo.nation"></input>
  47. </view>
  48. <view class="cu-form-group">
  49. <view class="title">户籍地址</view>
  50. <input placeholder="请输入户籍地址..." @input="bindInput" data-val="address" :value="forminfo.address"></input>
  51. </view>
  52. <view class="cu-form-group margin-top">
  53. <view class="title">意向工厂</view>
  54. <picker @change="factoryidChange" :value="forminfo.factoryid" :range="forminfo.factoryidarr">
  55. <view class="picker">
  56. {{forminfo.factoryidarr[forminfo.factoryid]}}
  57. </view>
  58. </picker>
  59. </view>
  60. <view class="cu-form-group">
  61. <view class="title">出发日期</view>
  62. <picker mode="date" :value="forminfo.startdate" start="2019-01-01" end="2100-12-31" @change="startdateChange">
  63. <view class="picker">
  64. {{forminfo.startdate}}
  65. </view>
  66. </picker>
  67. </view>
  68. <view class="cu-form-group">
  69. <view class="title">到达日期</view>
  70. <picker mode="date" :value="forminfo.enddate" start="2019-01-01" end="2100-12-31" @change="enddateChange">
  71. <view class="picker">
  72. {{forminfo.enddate}}
  73. </view>
  74. </picker>
  75. </view>
  76. <view class="cu-form-group">
  77. <view class="title">返费政策</view>
  78. <input placeholder="请输入返费政策..." @input="bindInput" data-val="refpolicy" :value="forminfo.refpolicy"></input>
  79. </view>
  80. <view class="cu-form-group">
  81. <view class="title">报备状态</view>
  82. <picker @change="statusChange" :value="forminfo.status" :range="forminfo.statusarr">
  83. <view class="picker">
  84. {{forminfo.statusarr[forminfo.status]}}
  85. </view>
  86. </picker>
  87. </view>
  88. <view class="cu-form-group align-start">
  89. <view class="title">报备备注</view>
  90. <textarea maxlength="140" placeholder="请输入报备备注..." @input="bindInput" data-val="agentremark" :value="forminfo.agentremark"></textarea>
  91. </view>
  92. <view class="padding flex flex-direction">
  93. <button class="cu-btn bg-orange margin-tb-sm lg" @tap="addEntry">确认提交</button>
  94. </view>
  95. </form>
  96. </view>
  97. <view v-else>
  98. <view class="cu-bar bg-white solid-bottom margin-top">
  99. <view class="action">
  100. <text class="cuIcon-titles text-blue"></text> 报备信息
  101. </view>
  102. </view>
  103. <view class="cu-list menu sm-border">
  104. <view class="cu-item">
  105. <view class="content">
  106. <text class="text-gray">姓名</text>
  107. </view>
  108. <view class="action">
  109. <text>{{entry.realname}}</text>
  110. </view>
  111. </view>
  112. <view class="cu-item">
  113. <view class="content">
  114. <text class="text-gray">手机号</text>
  115. </view>
  116. <view class="action">
  117. <text>{{entry.mobile}}</text>
  118. </view>
  119. </view>
  120. <view class="cu-item">
  121. <view class="content">
  122. <text class="text-gray">性别</text>
  123. </view>
  124. <view class="action">
  125. <text>{{entry.gender}}</text>
  126. </view>
  127. </view>
  128. <view class="cu-item">
  129. <view class="content">
  130. <text class="text-gray">民族</text>
  131. </view>
  132. <view class="action">
  133. <text>{{entry.nation}}</text>
  134. </view>
  135. </view>
  136. <view class="cu-item">
  137. <view class="content">
  138. <text class="text-gray">地址</text>
  139. </view>
  140. <view class="action">
  141. <text>{{entry.address}}</text>
  142. </view>
  143. </view>
  144. <view class="cu-item">
  145. <view class="content">
  146. <text class="text-gray">身份证号</text>
  147. </view>
  148. <view class="action">
  149. <text>{{entry.idcard}}</text>
  150. </view>
  151. </view>
  152. </view>
  153. <view class="cu-list menu sm-border">
  154. <view class="cu-item">
  155. <view class="content">
  156. <text class="text-gray">意向工厂</text>
  157. </view>
  158. <view class="action">
  159. <text>{{entry.reportFactory.title}}</text>
  160. </view>
  161. </view>
  162. <view class="cu-item">
  163. <view class="content">
  164. <text class="text-gray">返费模式</text>
  165. </view>
  166. <view class="action">
  167. <text>{{entry.reftype}}</text>
  168. </view>
  169. </view>
  170. <view class="cu-item">
  171. <view class="content">
  172. <text class="text-gray">返费政策</text>
  173. </view>
  174. <view class="action">
  175. <text>{{entry.refpolicy}}</text>
  176. </view>
  177. </view>
  178. <view class="cu-item">
  179. <view class="content">
  180. <text class="text-gray">出发日期</text>
  181. </view>
  182. <view class="action">
  183. <text>{{entry.startdate}}</text>
  184. </view>
  185. </view>
  186. <view class="cu-item">
  187. <view class="content">
  188. <text class="text-gray">到达日期</text>
  189. </view>
  190. <view class="action">
  191. <text>{{entry.enddate}}</text>
  192. </view>
  193. </view>
  194. <view class="cu-item">
  195. <view class="content">
  196. <text class="text-gray">报备时间</text>
  197. </view>
  198. <view class="action">
  199. <text>{{entry.createtime}}</text>
  200. </view>
  201. </view>
  202. <view class="cu-item">
  203. <view class="content">
  204. <text class="text-gray">报备备注</text>
  205. </view>
  206. <view class="action">
  207. <text>{{entry.agentremark}}</text>
  208. </view>
  209. </view>
  210. <view class="cu-item">
  211. <view class="content">
  212. <text class="text-gray">报备状态</text>
  213. </view>
  214. <view class="action">
  215. <text>{{statusarr[entry.status]}}</text>
  216. </view>
  217. </view>
  218. <view class="cu-item">
  219. <view class="content">
  220. <text class="text-gray">状态备注</text>
  221. </view>
  222. <view class="action">
  223. <text>{{entry.remark}}</text>
  224. </view>
  225. </view>
  226. </view>
  227. <view class="padding flex flex-direction" v-if="entry.status==1">
  228. <button class="cu-btn bg-orange margin-tb-sm lg" @tap="statusEntry">报备信息确认</button>
  229. <button class="cu-btn bg-white margin-tb-sm lg" @tap="deleteEntry">删除报备信息</button>
  230. </view>
  231. <view class="padding"></view>
  232. </view>
  233. </view>
  234. </template>
  235. <script>
  236. import avatar from "@/components/yq-avatar/yq-avatar.vue";
  237. var _this;
  238. export default {
  239. components: {
  240. avatar
  241. },
  242. data() {
  243. return {
  244. isRotate: false,
  245. brokerinfo: {},
  246. entry: null,
  247. broker: {},
  248. forminfo: {
  249. realname: "",
  250. mobile: "",
  251. idcard: "",
  252. gender: 0,
  253. nation: "",
  254. address: "",
  255. factoryid: 0,
  256. startdate: "",
  257. enddate: "",
  258. reftype: 0,
  259. refpolicy: "",
  260. agentremark: "",
  261. status: 0,
  262. factoryidarr: [],
  263. genderarr: ['男','女'],
  264. reftypearr: ['小时工','一次性','管理费'],
  265. statusarr: ['待确认', '已确认']
  266. },
  267. factorylist: [],
  268. statusarr: ['','待确认', '已确认', '已入职', '未通过']
  269. }
  270. },
  271. onLoad: function(option) {
  272. _this = this;
  273. _this.brokerinfo = uni.getStorageSync('brokerinfo') || false;
  274. if (_this.brokerinfo===false){
  275. uni.reLaunch({
  276. url: "/pages/my/my"
  277. });
  278. return false;
  279. }
  280. var entryid = option.entryid || 0;
  281. _this.$req.ajax({
  282. path: "broker/getentry",
  283. data: {
  284. entryid: entryid,
  285. brokerid: _this.brokerinfo.id
  286. }
  287. }).then((data) => {
  288. _this.entry = data.entry;
  289. _this.forminfo.factoryidarr = data.factoryidarr;
  290. _this.forminfo.startdate = data.today;
  291. _this.forminfo.enddate = data.today;
  292. _this.factorylist = data.factorylist;
  293. _this.broker = data.broker;
  294. }).catch((err) => {
  295. uni.showModal({
  296. title: '信息提示',
  297. content: err,
  298. showCancel: false
  299. });
  300. });
  301. },
  302. methods: {
  303. // 身份证识别
  304. setIdcard: function(rsp) {
  305. if(_this.isRotate){
  306. return false;
  307. }
  308. _this.isRotate = true;
  309. _this.$req.ajaxFile({
  310. path: "attachment/tplfieldimage",
  311. title:'正在上传',
  312. filePath: rsp.path,
  313. fileName:'file',
  314. }).then((filedata) => {
  315. var fdata = JSON.parse(filedata.data);
  316. _this.$req.ajax({
  317. path: "broker/setidcard",
  318. title:'正在识别',
  319. data: {
  320. picpath: fdata.data.path
  321. }
  322. }).then((data) => {
  323. // console.log("data: " + JSON.stringify(data));
  324. _this.forminfo.realname = data.idcard.name;
  325. _this.forminfo.idcard = data.idcard.num;
  326. _this.forminfo.gender = data.idcard.sex=='男' ? 0 : 1;
  327. _this.forminfo.nation = data.idcard.nationality;
  328. _this.forminfo.address = data.idcard.address;
  329. _this.isRotate = false;
  330. }).catch((err) => {
  331. uni.showModal({
  332. title: '信息提示',
  333. content: err,
  334. showCancel: false
  335. });
  336. _this.isRotate = false;
  337. });
  338. }).catch((err) => {
  339. uni.showModal({
  340. title: '信息提示',
  341. content: err,
  342. showCancel: false
  343. });
  344. _this.isRotate = false;
  345. });
  346. },
  347. statusEntry: function() {
  348. if(_this.isRotate){
  349. return false;
  350. }
  351. _this.isRotate = true;
  352. _this.$req.ajax({
  353. path: "broker/statusentry",
  354. data: {
  355. brokerid: _this.brokerinfo.id,
  356. entryid: _this.entry.id
  357. }
  358. }).then((data) => {
  359. uni.showModal({
  360. title: '信息提示',
  361. content: "报备信息确认成功。",
  362. showCancel: false,
  363. success: function(res) {
  364. if (res.confirm) {
  365. _this.entry = data.entry;
  366. }
  367. }
  368. });
  369. _this.isRotate = false;
  370. }).catch((err) => {
  371. uni.showModal({
  372. title: '信息提示',
  373. content: err,
  374. showCancel: false
  375. });
  376. _this.isRotate = false;
  377. });
  378. },
  379. deleteEntry: function() {
  380. if(_this.isRotate){
  381. return false;
  382. }
  383. _this.isRotate = true;
  384. _this.$req.ajax({
  385. path: "broker/deleteentry",
  386. data: {
  387. brokerid: _this.brokerinfo.id,
  388. entryid: _this.entry.id
  389. }
  390. }).then((data) => {
  391. uni.showModal({
  392. title: '信息提示',
  393. content: "报备信息删除成功。",
  394. showCancel: false,
  395. success: function(res) {
  396. if (res.confirm) {
  397. uni.redirectTo({
  398. url: '/pages/broker/myentry'
  399. });
  400. }
  401. }
  402. });
  403. _this.isRotate = false;
  404. }).catch((err) => {
  405. uni.showModal({
  406. title: '信息提示',
  407. content: err,
  408. showCancel: false
  409. });
  410. _this.isRotate = false;
  411. });
  412. },
  413. addEntry: function() {
  414. if(_this.isRotate){
  415. return false;
  416. }
  417. _this.isRotate = true;
  418. _this.$req.ajax({
  419. path: "broker/addentry",
  420. data: {
  421. brokerid: _this.brokerinfo.id,
  422. realname: _this.forminfo.realname,
  423. mobile: _this.forminfo.mobile,
  424. idcard: _this.forminfo.idcard,
  425. gender: _this.forminfo.genderarr[_this.forminfo.gender],
  426. nation: _this.forminfo.nation,
  427. address: _this.forminfo.address,
  428. factoryid: _this.factorylist[_this.forminfo.factoryid].id,
  429. startdate: _this.forminfo.startdate,
  430. enddate: _this.forminfo.enddate,
  431. reftype: _this.forminfo.reftypearr[_this.forminfo.reftype],
  432. refpolicy: _this.forminfo.refpolicy,
  433. agentremark: _this.forminfo.agentremark,
  434. status: parseInt(_this.forminfo.status) + 1,
  435. }
  436. }).then((data) => {
  437. uni.showModal({
  438. title: '信息提示',
  439. content: "报备信息提交成功。",
  440. showCancel: false,
  441. success: function(res) {
  442. if (res.confirm) {
  443. _this.entry = data.entry;
  444. }
  445. }
  446. });
  447. _this.isRotate = false;
  448. }).catch((err) => {
  449. uni.showModal({
  450. title: '信息提示',
  451. content: err,
  452. showCancel: false
  453. });
  454. _this.isRotate = false;
  455. });
  456. },
  457. factoryidChange: function(e) {
  458. _this.forminfo.factoryid = e.detail.value
  459. },
  460. statusChange: function(e) {
  461. _this.forminfo.status = e.detail.value
  462. },
  463. reftypeChange: function(e) {
  464. _this.forminfo.reftype = e.detail.value
  465. },
  466. startdateChange: function(e) {
  467. _this.forminfo.startdate = e.detail.value
  468. },
  469. enddateChange: function(e) {
  470. _this.forminfo.enddate = e.detail.value
  471. },
  472. genderChange: function(e) {
  473. _this.forminfo.gender = e.detail.value
  474. },
  475. bindInput: function(e) {
  476. var dataval = e.currentTarget.dataset.val;
  477. _this.forminfo[dataval] = e.detail.value;
  478. },
  479. makePhone: function() {
  480. uni.makePhoneCall({
  481. phoneNumber: _this.user.mobile
  482. });
  483. }
  484. }
  485. }
  486. </script>
  487. <style>
  488. .cu-form-group .title { min-width: calc(4em + 15px); }
  489. </style>