viseadd.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812
  1. <template>
  2. <view>
  3. <uni-forms ref="form" labelPosition="left" labelAlign="left" @submit="submitForm">
  4. <view class="uni-form-item uni-column">
  5. <view class="title"><text class="uni-form-item__title">签证编号</text></view>
  6. <view class="uni-input-wrapper">
  7. <input class="uni-input" focus placeholder="请填写签证编号" v-model="viseId" />
  8. </view>
  9. </view>
  10. <view class="uni-form-item uni-column">
  11. <view class="title"><text class="uni-form-item__title">签证名称</text></view>
  12. <view class="uni-input-wrapper">
  13. <input class="uni-input" focus placeholder="请填写签证名称" v-model="viseName" />
  14. </view>
  15. </view>
  16. <view class="uni-form-item uni-column">
  17. <view class="title"><text class="uni-form-item__title">申请单</text></view>
  18. <view class="uni-input-wrapper ">
  19. <input class="uni-input-small" v-model="requisitionName" />
  20. <a href='javascript:;' @click='getRequisition' class="uni-icon"><i class="fa fa-search" aria-hidden="true"></i></a>
  21. </view>
  22. </view>
  23. <view class="uni-form-item uni-column">
  24. <view class="title"><text class="uni-form-item__title">关联合同</text></view>
  25. <view class="uni-input-wrapper ">
  26. <input class="uni-input-small" disabled=true v-model="contractName" />
  27. <a href='javascript:;' @click='getRelationContract' class="uni-icon"><i class="fa fa-search" aria-hidden="true"></i></a>
  28. </view>
  29. </view>
  30. <view class="uni-form-item uni-column" v-show="contractName">
  31. <view class="title"><text class="uni-form-item__title">税率</text></view>
  32. <view class="uni-input-wrapper">
  33. {{contract.taxRate+'%'}}
  34. </view>
  35. </view>
  36. <view class="uni-form-item uni-column" v-show="contractName">
  37. <view class="title"><text class="uni-form-item__title">是否可抵扣</text></view>
  38. <view class="uni-input-wrapper" >
  39. {{contract.isDeduct==0?'否':'是'}}
  40. </view>
  41. </view>
  42. <view class="uni-form-item uni-column">
  43. <view class="title"><text class="uni-form-item__title">签证日期</text></view>
  44. <view class="uni-input-wrapper" style="justify-content: left;">
  45. <picker mode="date" @change="bindDateChange" v-model="viseDate" style="width: 100%;">
  46. <view class="uni-input">{{viseDate}}</view>
  47. </picker>
  48. </view>
  49. </view>
  50. <view class="uni-form-item uni-column">
  51. <view class="title"><text class="uni-form-item__title">办理期限</text></view>
  52. <view class="uni-input-wrapper" style="justify-content: left;">
  53. <picker mode="date" @change="bindDealDateChange" v-model="endDate" style="width: 100%;">
  54. <view class="uni-input">{{endDate}}</view>
  55. </picker>
  56. </view>
  57. </view>
  58. <view class="uni-form-item uni-column">
  59. <view class="title"><text class="uni-form-item__title">签证类型</text></view>
  60. <view class="uni-input-wrapper" style="justify-content: left;">
  61. <picker mode="selector" :value="index" :range="array" range-key="name" @change="bindPickerChange" v-model="viseType" style="width: 100%;">
  62. <view class="uni-input">{{array.length>0?array[index]:''}}</view>
  63. </picker>
  64. </view>
  65. </view>
  66. <view class="uni-form-item uni-column">
  67. <view class="title"><text class="uni-form-item__title">暂估金额</text></view>
  68. <view class="uni-input-wrapper">
  69. <input class="uni-input" focus value="0" v-model="estimateCash" type="digit" />
  70. </view>
  71. </view>
  72. <view class="uni-form-item uni-column">
  73. <view class="title"><text class="uni-form-item__title">报送金额</text></view>
  74. <view class="uni-input-wrapper">
  75. <input class="uni-input" focus value="0" v-model="reportCash" type="digit"/>
  76. </view>
  77. </view>
  78. <view class="uni-form-item uni-column">
  79. <view class="title"><text class="uni-form-item__title">签证原因</text></view>
  80. <view class="uni-textarea">
  81. <textarea focus placeholder="签证原因" v-model="reason" auto-height="true" />
  82. </view>
  83. </view>
  84. <view class="uni-form-item uni-column">
  85. <view class="title"><text class="uni-form-item__title">备注</text></view>
  86. <view class="uni-textarea">
  87. <textarea focus placeholder="请写备注" v-model="remark" auto-height="true" />
  88. </view>
  89. </view>
  90. <view class="uni-form-item uni-column">
  91. <view class="title" style="background-color: #efefef;"><text class="uni-form-item__title">上传文件</text></view>
  92. <view class="content">
  93. <g-upfile ref='gUpfile' :mode="imgList" @chooseFile='chooseFile' @imgDelete='imgDelete' :control='control'
  94. :columnNum="columnNum" :maxCount="maxCount" @limitFileSizeList='limitFileSizeList' @limitFileTypeList='limitFileTypeList' :maxFileSize="2000"></g-upfile>
  95. </view>
  96. </view>
  97. <uni-section title="费用明细" type="line"></uni-section>
  98. <uni-list>
  99. <uni-list-item v-if="costList" v-for="(item, index) in costList" :key="index">
  100. <view slot="body" class="slot-box">
  101. <view class="row">
  102. <view class="column-left">费用项:</view>
  103. <view class="column-right">{{item.costCodeName}}</view>
  104. </view>
  105. <view class="row">
  106. <view class="column-left">含税金额</view>
  107. <view class="column-right">
  108. <input class="uni-input-small" type="digit" v-model="item.cash" style="width: 240px;text-align: left;" @blur='countTaxtCash(item,index)' />
  109. </view>
  110. </view>
  111. <view class="row">
  112. <view class="column-left">税额</view>
  113. <view class="column-right" >
  114. <input class="uni-input-small" type="digit" disabled="true" v-model="item.rateCash" style="width: 240px;text-align: left;" />
  115. </view>
  116. </view>
  117. <view class="row">
  118. <view class="column-left">金额</view>
  119. <view class="column-right">
  120. <input class="uni-input-small" type="digit" disabled="true" v-model="item.noRateCash" style="width: 240px;text-align: left;" />
  121. </view>
  122. </view>
  123. <view class="row">
  124. <view class="column-left">备注:</view>
  125. <view class="column-right">
  126. <textarea focus v-model="item.remark" auto-height="true" style="width: 240px;text-align: left;" />
  127. </view>
  128. </view>
  129. <view class="row">
  130. <view class="column-left">操作:</view>
  131. <view class="column-right">
  132. <i class="fa fa-window-close" aria-hidden="true" @click="delRow(index)" style="font-size:20px;cursor: pointer;color: #999;margin-left:15px;" title="删除"></i>
  133. </view>
  134. </view>
  135. </view>
  136. </uni-list-item>
  137. </uni-list>
  138. <view style="margin-bottom: 120px;">
  139. </view>
  140. <view class="uni-btn-v uni-column">
  141. <button type="primary" form-type="submit" style="border-radius: 15px;" >提交</button>
  142. </view>
  143. </uni-forms>
  144. <topicon class="topicon" :iconWidth="50" :iconHeight="50" :startPostion="3" iconPath="../../../static/zhiding.png"
  145. :marginBottom="20" :marginTop="60" :marginLeft="5" :marginRight="5" @tapIcon="tapIcon"
  146. ></topicon>
  147. </view>
  148. </template>
  149. <script>
  150. import {GetQianzhengDropDown} from "@/common/api/requisitionApi.js";
  151. import {GetContract} from "@/common/api/commonApi.js";
  152. import {GetContractCostDTOs,InsertVise} from "@/common/api/viseApi.js";
  153. import {Decimal} from 'decimal.js'; //decimal计算
  154. import topicon from '@/components/gwh-backTopIcon/gwh-backTopIcon.vue'
  155. export default {
  156. components:{
  157. topicon
  158. },
  159. data() {
  160. return {
  161. viseId:'',
  162. viseName:'',
  163. requisitionCode:'', //申请单编号
  164. requisitionName:'', //申请单名称
  165. contractCode:'',
  166. contractName:'',
  167. contract:{}, //获取的关联合同信息
  168. viseDate:this.$util.getDate({
  169. format: true
  170. }),
  171. endDate:this.$util.getDate({
  172. format: true
  173. }),
  174. viseType:'',
  175. estimateCash:0.00,
  176. reportCash:0.00,
  177. reason:'',
  178. remark:'',
  179. costList:[], //费用明细
  180. imageList: [],
  181. countIndex: 5,
  182. count: [1, 2, 3, 4, 5],
  183. title1: 'picker',
  184. array: [],
  185. index: 0,
  186. date: this.$util.getDate({
  187. format: true
  188. }),
  189. startDate:this.$util.getDate('start'),
  190. endDate:this.$util.getDate('end'),
  191. control: true,
  192. columnNum: 3,
  193. imgList: [],
  194. urlList:[],
  195. maxCount:5
  196. }
  197. },
  198. onLoad(){
  199. //console.info(page.path);
  200. console.info(uni.getStorageSync('storage_state'));
  201. //console.info(this);
  202. this.$util.persistLogin(this);
  203. //console.info(this.$store.state.user);
  204. },
  205. onUnload() {
  206. this.imageList = [],
  207. this.sourceTypeIndex = 2,
  208. this.sourceType = ['拍照', '相册', '拍照或相册'],
  209. this.sizeTypeIndex = 2,
  210. this.sizeType = ['压缩', '原图', '压缩或原图'],
  211. this.countIndex = 5;
  212. },
  213. created: function() {
  214. this.GetDropDown();
  215. },
  216. updated:function(){
  217. },
  218. methods: {
  219. /**
  220. * 手动提交
  221. * @param {Object} form
  222. */
  223. submitForm(e) {
  224. console.info('submitForm');
  225. let _this=this;
  226. if(this.viseId==='')
  227. {
  228. uni.showToast({
  229. icon:"none",
  230. title:"请填写签证编号",
  231. duration:3000
  232. });
  233. return;
  234. }
  235. if(this.viseName==='')
  236. {
  237. uni.showToast({
  238. icon:"none",
  239. title:"请填写签证名称",
  240. duration:3000
  241. });
  242. return;
  243. }
  244. if(this.viseName.length>50)
  245. {
  246. uni.showToast({
  247. icon:"none",
  248. title:"签证名称不能多于50字",
  249. duration:3000
  250. });
  251. return;
  252. }
  253. if(this.requisitionCode===""){
  254. uni.showToast({
  255. icon:"none",
  256. title:"请选择申请单",
  257. duration:3000
  258. });
  259. return;
  260. }
  261. if(this.contractCode===""){
  262. uni.showToast({
  263. icon:"none",
  264. title:"请选择关联合同号",
  265. duration:3000
  266. });
  267. return;
  268. }
  269. if(this.viseDate===""){
  270. uni.showToast({
  271. icon:"none",
  272. title:"请选择签证日期",
  273. duration:3000
  274. });
  275. return;
  276. }
  277. if(this.endDate===""){
  278. uni.showToast({
  279. icon:"none",
  280. title:"请选择办理期限",
  281. duration:3000
  282. });
  283. return;
  284. }
  285. if(this.changeType===""){
  286. uni.showToast({
  287. icon:"none",
  288. title:"签证类型不能为空",
  289. duration:3000
  290. });
  291. return;
  292. }
  293. if(this.requisitionReason===""){
  294. uni.showToast({
  295. icon:"none",
  296. title:"原因不能为空",
  297. duration:3000
  298. });
  299. return;
  300. }
  301. if(this.reason!=""){
  302. if(this.reason.length>500){
  303. uni.showToast({
  304. icon:"none",
  305. title:"原因不能超过500字",
  306. duration:3000
  307. });
  308. return;
  309. }
  310. }
  311. if(this.remark!==""){
  312. if(this.remark.length>500){
  313. uni.showToast({
  314. icon:"none",
  315. title:"备注不能超过500字",
  316. duration:3000
  317. });
  318. return;
  319. }
  320. }
  321. if(this.costList.length<=0){
  322. uni.showToast({
  323. icon:"none",
  324. title:"费用明细不能为空",
  325. duration:3000
  326. });
  327. return;
  328. }
  329. let moneyType=this.contract.moneyType;
  330. let exchangeRate=this.contract.exchangeRate;
  331. let taxRate=this.contract.taxRate;
  332. let list1=this.costList; //费用明细
  333. let totalCash=0.00; //总含税金额
  334. let rateTotalCash=0.00; //税收总额
  335. let noRateTotalCash=0.00; //不含税总金额
  336. let viseCosts=[];
  337. list1.forEach(function(item,index,arr){
  338. totalCash+= item.cash-0.00;
  339. rateTotalCash+= item.rateCash;
  340. noRateTotalCash+= item.noRateCash;
  341. viseCosts.push({costCode:item.costCode,costBudgetSetCode:item.costBudgetSetCode,cash:item.cash-0.00,checkCash:0.00,moneyType:moneyType,exchangeRate:exchangeRate,money:item.cash-0.00,checkMoney:0.00,remark:item.remark,rate:taxRate,rateCash:item.rateCash,rateMoney:item.rateCash,noRateCash:item.noRateCash,noRateMoney:item.noRateCash});
  342. });
  343. //vise viseCosts
  344. var vise={viseId:this.viseId,viseName:this.viseName,viseType:this.viseType,person:this.$util.getState(this,'userCode'),unitCode:this.$store.state.departmentCode,viseDate:this.viseDate,endDate:this.endDate,remark:this.remark,reason:this.reason,projectCode:this.$store.state.projectCode,contractCode:this.contractCode,totalCash:totalCash,moneyType:moneyType,exchangeRate:exchangeRate,estimateCash:this.estimateCash-0,reportCash:this.reportCash-0,requisitionCode:this.requisitionCode,rate:taxRate,rateTotalCash:rateTotalCash,noRateTotalCash:noRateTotalCash };
  345. var data={vise:vise,viseCosts:viseCosts};
  346. console.info('data:',data);
  347. //return;
  348. InsertVise(data).then((res)=>{
  349. console.info("提交应答");
  350. console.info(res);
  351. if(res){
  352. //上传图片
  353. _this.uploadFileToServe(res) ;
  354. uni.navigateTo({
  355. url:'/pages/template/GetVises/GetVises'
  356. })
  357. }
  358. else{
  359. uni.showToast({
  360. title:'添加失败,重新操作',
  361. icon:'none',
  362. duration:3000
  363. })
  364. }
  365. });
  366. },
  367. /*
  368. 获取申请单
  369. */
  370. getRequisition() {
  371. let _this = this;
  372. _this.saveTemp(_this);
  373. //创建名字为fire的监听器,监听子页面传值事件
  374. uni.$on('requisition', function(data) {
  375. console.info("监听getRequisition子页面的传值", data);
  376. //console.info('监听',_this);
  377. _this.getTemp(_this);
  378. _this.requisitionCode=data[0].requisitionCode;
  379. _this.requisitionName=data[0].requisitionName;
  380. /* _this.$nextTick(function(){
  381. //更新dom
  382. }); */
  383. //接收一次监听,一旦监听到回传值,则清除监听事件,若不清除,会占用资源
  384. uni.$off("requisition");
  385. });
  386. uni.navigateTo({
  387. url: '/pages/template/SelectRelationRequision/SelectRelationRequision'
  388. });
  389. },
  390. /*
  391. 获取关联合同
  392. */
  393. getRelationContract() {
  394. let _this = this;
  395. _this.saveTemp(_this);
  396. //创建名字为fire的监听器,监听子页面传值事件
  397. uni.$on('contract', function(data) {
  398. console.info("监听getRelationContract子页面的传值", data);
  399. //console.info('监听',_this);
  400. _this.getTemp(_this);
  401. _this.contractCode=data[0].contractCode;
  402. _this.contractName=data[0].contractName;
  403. _this.contract=data[0].contract;
  404. _this.getCostList();
  405. /* _this.$nextTick(function(){
  406. //更新dom
  407. }); */
  408. //接收一次监听,一旦监听到回传值,则清除监听事件,若不清除,会占用资源
  409. uni.$off("contract");
  410. });
  411. let requisitionCode=_this.requisitionCode;
  412. if(requisitionCode==""){
  413. uni.showToast({
  414. title:'请先选择申请单',
  415. icon:'none',
  416. duration:3000
  417. });
  418. return;
  419. }
  420. uni.navigateTo({
  421. url: '/pages/template/SelectRelationContract/SelectRelationContract?requisitionCode='+requisitionCode
  422. });
  423. },
  424. /*
  425. 获取费用明细
  426. */
  427. getCostList() {
  428. let _this = this;
  429. _this.saveTemp(_this);
  430. if(_this.contractCode){
  431. GetContractCostDTOs(_this.contractCode).then(res=>{
  432. console.info('GetContractCostDTOs',res);
  433. if(res.length>0){
  434. res.forEach(function(item,index,arr){
  435. item.cash=0.00;
  436. item.rateCash=0.00;
  437. item.noRateCash=0.00;
  438. _this.$set(_this.costList,index,item);
  439. });
  440. }
  441. });
  442. }
  443. },
  444. delRow: function(index) {
  445. console.info("删除");
  446. console.info(this.costList[index]);
  447. this.costList.splice(index, 1);
  448. },
  449. /* 计算该行的税额 */
  450. countTaxtCash:function(item,index){
  451. let _this=this;
  452. //console.info("countTaxtCash",item);
  453. //console.info("countTaxtCash",index);
  454. //let value=event.detail.value;
  455. let taxRate=_this.contract.taxRate;
  456. item.rateCash=item.cash*taxRate;
  457. item.noRateCash=item.cash-item.rateCash;
  458. },
  459. bindPickerChange: function(e) {
  460. //console.log('picker发送选择改变,携带值为:' + e.detail.value);
  461. //console.info(e.detail);
  462. this.index = e.detail.value;
  463. this.viseType=this.array[this.index];
  464. console.info(this.viseType);
  465. },
  466. bindDateChange: function(e) {
  467. let date = e.detail.value;
  468. this.viseDate=date;
  469. console.info('bindDateChange',this.viseDate);
  470. },
  471. bindDealDateChange: function(e) {
  472. let date = e.detail.value;
  473. this.endDate=date;
  474. console.info('bindDealDateChange',this.endDate);
  475. },
  476. GetDropDown:function(){
  477. let that=this;
  478. GetQianzhengDropDown().then((res)=>{
  479. console.info('GetQianzhengDropDown:',res);
  480. res.forEach(function(item,index,array){
  481. that.$set(that.array,index,item);
  482. });
  483. //赋默认值
  484. that.viseType=that.array[0];
  485. console.info(that.viseType);
  486. });
  487. },
  488. /*
  489. 上传后返回的值:
  490. list:上传后图片数组
  491. v:返回当前上传图片的临时路径
  492. */
  493. chooseFile(list, v) {
  494. console.log("上传图片_list:", list)
  495. console.log("上传图片_v:", v);
  496. this.urlList=list;
  497. console.info("urlList",this.urlList);
  498. },
  499. /*
  500. 删除图片:
  501. list:删除返回删除后剩余的图片数组
  502. eq:返回删除的数组
  503. */
  504. imgDelete(list, eq) {
  505. console.log("删除图片_list:", list);
  506. console.log("删除图片_eq:", eq);
  507. this.urlList=list;
  508. console.info("urlList",this.urlList);
  509. },
  510. /*限制文件大小列表*/
  511. limitFileSizeList(list){
  512. console.info('limitFileSizeList:',list);
  513. if(list){
  514. if(list.length>0){
  515. uni.showModal({
  516. title:'警告',
  517. content: list.join()+' 文件大小超过2000KB',
  518. showCancel:false
  519. });
  520. }
  521. }
  522. },
  523. /*限制文件类型列表*/
  524. limitFileTypeList(list,allowFileType){
  525. console.info('limitFileTypeList:',list);
  526. console.info('limitFileTypeList:',allowFileType);
  527. if(list){
  528. if(list.length>0){
  529. uni.showModal({
  530. title:'警告',
  531. content: list.join()+' 文件类型必须是'+allowFileType.join(),
  532. showCancel:false
  533. });
  534. }
  535. }
  536. },
  537. /*
  538. 执行上传服务:
  539. urlList:要上传的图片:数组类型
  540. */
  541. uploadFileToServe(masterCode) {
  542. let _this=this;
  543. var urlList=_this.urlList;
  544. if (!urlList || urlList.length <= 0) {
  545. return;
  546. };
  547. //console.info(urlList);
  548. //return;
  549. for (let i = 0; i < urlList.length; i++) {
  550. uni.uploadFile({
  551. url: '/api/Common/UploadImage',
  552. filePath: urlList[i],
  553. name: 'file',
  554. formData: {
  555. createPerson:_this.$store.state.user.userCode,
  556. masterCode:masterCode,
  557. attachMentType:'Vise'
  558. },
  559. headers: {
  560. 'Content-Type': 'multipart/form-data; boundary = ' + new Date().getTime()
  561. //这里要把content-type设置为multipard/form-data,同时还要设置boundary
  562. },
  563. success: (uploadFileRes) => {
  564. console.log("图片上传:",uploadFileRes.data);
  565. }
  566. });
  567. }
  568. },
  569. saveTemp(_this){ //临时存
  570. uni.setStorage({
  571. key:'viseId',
  572. data:_this.viseId
  573. });
  574. uni.setStorage({
  575. key:'viseName',
  576. data:_this.viseName
  577. });
  578. uni.setStorage({
  579. key:'requisitionCode',
  580. data:_this.requisitionCode
  581. });
  582. uni.setStorage({
  583. key:'requisitionName',
  584. data:_this.requisitionName
  585. });
  586. uni.setStorage({
  587. key:'contractName',
  588. data:_this.contractName
  589. });
  590. uni.setStorage({
  591. key:'contractCode',
  592. data:_this.contractCode
  593. });
  594. uni.setStorage({
  595. key:'viseDate',
  596. data:_this.viseDate
  597. });
  598. uni.setStorage({
  599. key:'endDate',
  600. data:_this.endDate
  601. });
  602. uni.setStorage({
  603. key:'viseType',
  604. data:_this.viseType
  605. });
  606. uni.setStorage({
  607. key:'estimateCash',
  608. data:_this.estimateCash
  609. });
  610. uni.setStorage({
  611. key:'reportCash',
  612. data:_this.reportCash
  613. });
  614. uni.setStorage({
  615. key:'reason',
  616. data:_this.reason
  617. });
  618. uni.setStorage({
  619. key:'remark',
  620. data:_this.remark
  621. });
  622. },
  623. getTemp(_this){ //获取缓存,重新给表单赋值
  624. _this.viseId=uni.getStorageSync('viseId');
  625. _this.viseName=uni.getStorageSync('viseName');
  626. _this.requisitionCode=uni.getStorageSync('requisitionCode');
  627. _this.requisitionName=uni.getStorageSync('requisitionName');
  628. _this.contractName=uni.getStorageSync('contractName');
  629. _this.contractCode=uni.getStorageSync('contractCode');
  630. _this.viseDate=uni.getStorageSync('viseDate');
  631. _this.endDate=uni.getStorageSync('endDate');
  632. _this.viseType=uni.getStorageSync('viseType');
  633. _this.estimateCash=uni.getStorageSync('estimateCash');
  634. _this.reportCash=uni.getStorageSync('reportCash');
  635. _this.reason=uni.getStorageSync('reason');
  636. _this.remark=uni.getStorageSync('remark');
  637. },
  638. tapIcon(e){
  639. console.log('you tap icon');
  640. document.documentElement.scrollTop = document.body.scrollTop = 0;
  641. }
  642. }
  643. }
  644. </script>
  645. <style scoped>
  646. /* 头条小程序组件内不能引入字体 */
  647. /* #ifdef MP-TOUTIAO */
  648. @font-face {
  649. font-family: uniicons;
  650. font-weight: normal;
  651. font-style: normal;
  652. src: url("~@/static/uni.ttf") format("truetype");
  653. }
  654. /* #endif */
  655. page {
  656. display: flex;
  657. flex-direction: column;
  658. box-sizing: border-box;
  659. background-color: #efeff4;
  660. min-height: 100%;
  661. height: auto;
  662. }
  663. view {
  664. font-size: 14px;
  665. line-height: inherit;
  666. }
  667. .uni-form-item__title {
  668. font-size: 16px;
  669. line-height: 24px;
  670. }
  671. .uni-input-wrapper {
  672. /* #ifndef APP-NVUE */
  673. display: flex;
  674. /* #endif */
  675. padding: 8px 13px;
  676. flex-direction: row;
  677. flex-wrap: nowrap;
  678. background-color: #FFFFFF;
  679. }
  680. .title{
  681. background-color: #efefef;
  682. }
  683. .uni-input {
  684. height: 28px;
  685. line-height: 28px;
  686. font-size: 15px;
  687. padding: 0px;
  688. flex: 1;
  689. background-color: #FFFFFF;
  690. }
  691. .uni-icon {
  692. font-family: uniicons;
  693. font-size: 24px;
  694. font-weight: normal;
  695. font-style: normal;
  696. width: 24px;
  697. height: 24px;
  698. line-height: 24px;
  699. margin-left:15px;
  700. color: #999999;
  701. }
  702. .uni-eye-active {
  703. color: #007AFF;
  704. }
  705. .uni-btn-v{
  706. position: fixed;
  707. bottom: 0;
  708. width:100%;
  709. }
  710. .header-slot-box {
  711. font-size:15px;
  712. margin: 5px 5px;
  713. width:20%;
  714. justify-content: center;
  715. }
  716. .body-slot-box {
  717. font-size:15px;
  718. margin: 5px 5px;
  719. width:40%;
  720. justify-content: center;
  721. }
  722. .footer-slot-box {
  723. font-size:15px;
  724. margin: 5px 5px;
  725. width:40%;
  726. justify-content: center;
  727. }
  728. .uni-textarea textarea{
  729. font-size:15px;
  730. }
  731. .content {
  732. padding: 40rpx;
  733. background-color: #fff;
  734. }
  735. /* 上传控件 */
  736. .uploadControl {
  737. border: 1rpx solid #eee;
  738. border-radius: 10rpx;
  739. width: 130rpx;
  740. display: block;
  741. height: 130rpx;
  742. text-align: center;
  743. line-height: 130rpx;
  744. font-size: 30rpx;
  745. color: #888;
  746. background-color: #eeeeee;
  747. }
  748. .topicon >>> .icon{
  749. border: #4CD964 2upx solid;
  750. }
  751. </style>