requisitionedit.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784
  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="requisitionName" name="requisitionName" :value="requisitionName" />
  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" style="justify-content: left;">
  13. <picker mode="date" :value="requisitionDate" :start="startDate" :end="endDate" @change="bindDateChange" v-model="requisitionDate" name="requisitionDate" style="width: 100%;">
  14. <view class="uni-input">{{requisitionDate}}</view>
  15. </picker>
  16. </view>
  17. </view>
  18. <view class="uni-form-item uni-column">
  19. <view class="title"><text class="uni-form-item__title">{{qianzhengName}}</text></view>
  20. <view class="uni-input-wrapper" style="justify-content: left;">
  21. <picker mode="selector" :value="index" :range="array" range-key="name" @change="bindPickerChange" v-model="changeType" name="changeType" style="width: 100%;">
  22. <view class="uni-input">{{array.length>0?array[index]:''}}</view>
  23. </picker>
  24. </view>
  25. </view>
  26. <view class="uni-form-item uni-column">
  27. <view class="title"><text class="uni-form-item__title">原因</text></view>
  28. <view class="uni-textarea">
  29. <textarea focus placeholder="请输入原因" v-model="requisitionReason" auto-height="true" name="requisitionReason" :value="requisitionReason"/>
  30. </view>
  31. </view>
  32. <view class="uni-form-item uni-column">
  33. <view class="title"><text class="uni-form-item__title">备注</text></view>
  34. <view class="uni-textarea">
  35. <textarea focus placeholder="请写备注" v-model="remark" :value="remark" auto-height="true" name="remark"/>
  36. </view>
  37. </view>
  38. <view class="uni-form-item uni-column">
  39. <view class="title" style="background-color: #efefef;"><text class="uni-form-item__title">上传文件</text></view>
  40. <view class="content">
  41. <g-upfile ref='gUpfile' :mode="imgList" @chooseFile='chooseFile' @imgDelete='imgDelete' :control='control'
  42. :columnNum="columnNum" :maxCount="maxCount" @limitFileSizeList='limitFileSizeList' @limitFileTypeList='limitFileTypeList' :maxFileSize="20000"></g-upfile>
  43. </view>
  44. </view>
  45. <uni-section title="关联合同" type="line">
  46. <button type="default" @click="openWindow" size='mini' >添加关联合同</button>
  47. </uni-section>
  48. <view class="uni-form-item uni-column" style="margin-bottom: 80px;">
  49. <uni-list style="background-color: #EFEFEF;" >
  50. <uni-list-item>
  51. <view slot="header" class="header-slot-box">合同编号</view>
  52. <view slot="body" class="body-slot-box">合同名称</view>
  53. <view slot="footer" class="footer-slot-box">暂估金额</view>
  54. </uni-list-item>
  55. </uni-list>
  56. <uni-list>
  57. <uni-list-item v-for="(item,index) in contractList" :key="index">
  58. <view slot="header" class="header-slot-box" >
  59. <scroll-view scroll-x="true">{{item.contractID}}</scroll-view>
  60. </view>
  61. <view slot="body" class="body-slot-box">
  62. <scroll-view scroll-x="true" style="width:160px;">{{item.contractName}}</scroll-view>
  63. </view>
  64. <view slot="footer" class="footer-slot-box" style="flex-direction: row;justify-content: center;">
  65. <input class="uni-input" type="digit" focus v-model="item.estimateCash" style="width:50px;float:left;"/>
  66. <i class="fa fa-window-close" aria-hidden="true" @click="delRow(index)" style="font-size:20px;cursor: pointer;float:left;color: blue;margin-left:15px;" title="删除"></i>
  67. </view>
  68. </uni-list-item>
  69. </uni-list>
  70. </view>
  71. <view class="uni-btn-v uni-column">
  72. <button type="primary" form-type="submit" style="border-radius: 15px;" >编辑</button>
  73. </view>
  74. </uni-forms>
  75. </view>
  76. </template>
  77. <script>
  78. import permision from "@/common/permission.js";
  79. import {GetQianzhengDropDown,GetRequistionDetail,UpdateRequisition} from "@/common/api/requisitionApi.js";
  80. import {GetUserDepartment} from "@/common/api/commonApi.js";
  81. import {Decimal} from 'decimal.js'; //decimal计算
  82. export default {
  83. data() {
  84. return {
  85. requisitionName:'',
  86. requisitionDate:this.$util.getDate({
  87. format: true
  88. }),
  89. requisitionType:0,
  90. qianzhengName:'签证类型',
  91. changeType:'',
  92. userCode:'', //用户编号
  93. personName:'', //申办人
  94. unitCode:'', //申办部门
  95. unitCodeName:'', //申办部门名
  96. requisitionReason:'',
  97. remark:'',
  98. contractList:[], //关联合同列表
  99. title: 'choose/previewImage',
  100. imageList: [],
  101. countIndex: 5,
  102. count: [1, 2, 3, 4, 5],
  103. title1: 'picker',
  104. array: [],
  105. index: 0,
  106. date: this.$util.getDate({
  107. format: true
  108. }),
  109. startDate:this.$util.getDate('start'),
  110. endDate:this.$util.getDate('end'),
  111. control: true,
  112. columnNum: 3,
  113. imgList: [],
  114. urlList:[],
  115. maxCount:5,
  116. }
  117. },
  118. onLoad(){
  119. //console.info(page.path);
  120. console.info(uni.getStorageSync('storage_state'));
  121. //console.info(this);
  122. this.$util.persistLogin(this);
  123. //console.info(this.$store.state.user);
  124. },
  125. onUnload() {
  126. this.imageList = [],
  127. this.sourceTypeIndex = 2,
  128. this.sourceType = ['拍照', '相册', '拍照或相册'],
  129. this.sizeTypeIndex = 2,
  130. this.sizeType = ['压缩', '原图', '压缩或原图'],
  131. this.countIndex = 5;
  132. },
  133. created: function() {
  134. console.info("created");
  135. this.GetDropDown();
  136. //console.info("created id",this.$util.getQuery("id"));
  137. //console.info("created id",id);
  138. },
  139. methods: {
  140. input(form, name, value) {
  141. this.$refs[form].setValue(name, value)
  142. },
  143. /**
  144. * 手动提交
  145. * @param {Object} form
  146. */
  147. submitForm(e) {
  148. console.info('submitForm');
  149. let _this=this;
  150. if(this.requisitionName==='')
  151. {
  152. uni.showToast({
  153. icon:"none",
  154. title:"请填写申请单名称",
  155. duration:3000
  156. });
  157. return;
  158. }
  159. if(this.requisitionName.length>50)
  160. {
  161. uni.showToast({
  162. icon:"none",
  163. title:"申请单名称不能多于50字",
  164. duration:3000
  165. });
  166. return;
  167. }
  168. if(this.requisitionDate===""){
  169. uni.showToast({
  170. icon:"none",
  171. title:"申请日期不能为空",
  172. duration:3000
  173. });
  174. return;
  175. }
  176. if(this.changeType===""){
  177. uni.showToast({
  178. icon:"none",
  179. title:"签证类型不能为空",
  180. duration:3000
  181. });
  182. return;
  183. }
  184. if(this.requisitionReason===""){
  185. uni.showToast({
  186. icon:"none",
  187. title:"原因不能为空",
  188. duration:3000
  189. });
  190. return;
  191. }
  192. if(this.requisitionReason.length>500){
  193. uni.showToast({
  194. icon:"none",
  195. title:"原因不能超过500字",
  196. duration:3000
  197. });
  198. return;
  199. }
  200. if(this.remark!==""){
  201. if(this.remark.length>500){
  202. uni.showToast({
  203. icon:"none",
  204. title:"签备注不能超过500字",
  205. duration:3000
  206. });
  207. return;
  208. }
  209. }
  210. var requisitionDTO={requisitionCode:this.$util.getQuery("id"),requisitionName:this.requisitionName,requisitionDate:this.requisitionDate,changeType:this.changeType,requisitionReason:this.requisitionReason,remark:this.remark,person:this.userCode,unitCode:this.unitCode,projectCode:this.$store.state.projectCode,RequisitionType:this.RequisitionType};
  211. var list1=this.contractList;
  212. let list=[];
  213. list1.forEach(function(item,index,array){
  214. list.push({requisitionCode:'',contractCode:item.contractCode,estimateCash:new Decimal(item.estimateCash).toFixed(2)-0 });
  215. //list.push({requisitionCode:'',contractCode:item.contractCode,estimateCash: 220});
  216. });
  217. console.info("【list】");
  218. console.info(list);
  219. if(list.length<=0){
  220. uni.showToast({
  221. title:"请添加关联合同",
  222. icon:"none",
  223. duration:3000
  224. });
  225. return;
  226. }
  227. //return;
  228. var data={Requisition:requisitionDTO,List:list};
  229. console.info("编辑提交的数据",data);
  230. //return;
  231. //var strList=JSON.stringify(list);
  232. //var strData=JSON.stringify(data);
  233. UpdateRequisition(data).then((res)=>{
  234. console.info("提交应答");
  235. console.info(res);
  236. if(res){
  237. //上传图片
  238. _this.uploadFileToServe(res) ;
  239. uni.navigateTo({
  240. url:'/pages/template/requisitionlist/requisitionlist?type='+_this.requisitionType
  241. })
  242. }
  243. else{
  244. uni.showToast({
  245. title:'添加失败,重新操作',
  246. icon:'none',
  247. duration:3000
  248. })
  249. }
  250. });
  251. },
  252. bindPickerChange: function(e) {
  253. //console.log('picker发送选择改变,携带值为:' + e.detail.value);
  254. //console.info(e.detail);
  255. this.index = e.detail.value;
  256. this.changeType=this.array[this.index];
  257. console.info(this.changeType);
  258. },
  259. bindDateChange: function(e) {
  260. this.date = e.detail.value;
  261. this.requisitionDate=this.date;
  262. console.info(this.date);
  263. },
  264. sourceTypeChange: function(e) {
  265. this.sourceTypeIndex = parseInt(e.detail.value)
  266. },
  267. sizeTypeChange: function(e) {
  268. this.sizeTypeIndex = parseInt(e.detail.value)
  269. },
  270. countChange: function(e) {
  271. this.countIndex = e.detail.value;
  272. },
  273. chooseImage: async function() {
  274. console.info("chooseImage");
  275. // #ifdef APP-PLUS
  276. // TODO 选择相机或相册时 需要弹出actionsheet,目前无法获得是相机还是相册,在失败回调中处理
  277. if (this.sourceTypeIndex !== 2) {
  278. let status = await this.checkPermission();
  279. if (status !== 1) {
  280. return;
  281. }
  282. }
  283. // #endif
  284. console.info(this.imageList);
  285. if (this.imageList.length === 5) {
  286. let isContinue = await this.isFullImg();
  287. console.log("是否继续?", isContinue);
  288. if (!isContinue) {
  289. return;
  290. }
  291. }
  292. uni.chooseImage({
  293. sourceType: sourceType[this.sourceTypeIndex],
  294. sizeType: sizeType[this.sizeTypeIndex],
  295. count: this.imageList.length + this.count[this.countIndex] > 5 ? 5 - this.imageList.length : this.count[this.countIndex],
  296. success: (res) => {
  297. console.info("res.tempFiles");
  298. console.info(res.tempFiles);
  299. this.imageList = this.imageList.concat(res.tempFilePaths);
  300. console.info(this.imageList);
  301. },
  302. fail: (err) => {
  303. // #ifdef APP-PLUS
  304. if (err['code'] && err.code !== 0 && this.sourceTypeIndex === 2) {
  305. this.checkPermission(err.code);
  306. }
  307. // #endif
  308. // #ifdef MP
  309. uni.getSetting({
  310. success: (res) => {
  311. let authStatus = false;
  312. switch (this.sourceTypeIndex) {
  313. case 0:
  314. authStatus = res.authSetting['scope.camera'];
  315. break;
  316. case 1:
  317. authStatus = res.authSetting['scope.album'];
  318. break;
  319. case 2:
  320. authStatus = res.authSetting['scope.album'] && res.authSetting['scope.camera'];
  321. break;
  322. default:
  323. break;
  324. }
  325. if (!authStatus) {
  326. uni.showModal({
  327. title: '授权失败',
  328. content: 'Hello uni-app需要从您的相机或相册获取图片,请在设置界面打开相关权限',
  329. success: (res) => {
  330. if (res.confirm) {
  331. uni.openSetting()
  332. }
  333. }
  334. })
  335. }
  336. }
  337. })
  338. // #endif
  339. }
  340. })
  341. },
  342. isFullImg: function() {
  343. return new Promise((res) => {
  344. uni.showModal({
  345. content: "已经有5张图片了,是否清空现有图片?",
  346. success: (e) => {
  347. if (e.confirm) {
  348. this.imageList = [];
  349. res(true);
  350. } else {
  351. res(false)
  352. }
  353. },
  354. fail: () => {
  355. res(false)
  356. }
  357. })
  358. })
  359. },
  360. previewImage: function(e) {
  361. var current = e.target.dataset.src
  362. uni.previewImage({
  363. current: current,
  364. urls: this.imageList
  365. })
  366. },
  367. GetDropDown:function(){
  368. let that=this;
  369. let id=that.$util.getQuery("id");
  370. that.getDetail(id);
  371. },
  372. openWindow:function(){
  373. let _this=this;
  374. //console.info('监听事件外部this');
  375. //console.info(this);
  376. uni.setStorage({
  377. key:'s_requisitionName',
  378. data:_this.requisitionName
  379. });
  380. uni.setStorage({
  381. key:'s_requisitionDate',
  382. data:_this.requisitionDate
  383. });
  384. uni.setStorage({
  385. key:'s_changeType',
  386. data:_this.changeType
  387. });
  388. uni.setStorage({
  389. key:'s_requisitionReason',
  390. data:_this.requisitionReason
  391. });
  392. uni.setStorage({
  393. key:'s_remark',
  394. data:_this.remark
  395. });
  396. uni.setStorage({
  397. key:'s_imageList',
  398. data:_this.imageList
  399. });
  400. //let oldData=_this.contractList;
  401. //console.info('oldData',oldData);
  402. //创建名字为fire的监听器,监听子页面传值事件
  403. uni.$on('fire', function(data) {
  404. console.info("监听子页面的传值",data);
  405. data.forEach(function(item,index,array){
  406. //console.info("foreach");
  407. _this.contractList.push(item);
  408. //_this.$set(oldData,index,item);
  409. });
  410. //console.info('oldData赋值后',oldData);
  411. console.info('contractList监听赋值后',_this.contractList);
  412. //从子页面返回父页面,原来表单已经填写的值会丢失,因此需要重新赋值
  413. _this.requisitionName=uni.getStorageSync('s_requisitionName');
  414. _this.requisitionDate=uni.getStorageSync('s_requisitionDate');
  415. _this.requisitionReason=uni.getStorageSync('s_requisitionReason');
  416. _this.changeType=uni.getStorageSync('s_changeType');
  417. _this.remark=uni.getStorageSync('s_remark');
  418. _this.imageList=uni.getStorageSync('s_imageList');
  419. //接收一次监听,一旦监听到回传值,则清除监听事件,若不清除,会占用资源
  420. uni.$off("fire");
  421. console.info("监听子页面的传值结束");
  422. });
  423. //打开子页面
  424. uni.navigateTo({
  425. url:"/pages/template/GetRelationContract/GetRelationContract"
  426. })
  427. },
  428. delRow:function(index){
  429. //console.info(index);
  430. //console.info(this.contractList[index]);
  431. this.contractList.splice(index,1);
  432. },
  433. /*
  434. 上传后返回的值:
  435. list:上传后图片数组
  436. v:返回当前上传图片的临时路径
  437. */
  438. chooseFile(list, v) {
  439. console.log("上传图片_list:", list)
  440. console.log("上传图片_v:", v);
  441. this.urlList=list;
  442. console.info("urlList",this.urlList);
  443. },
  444. /*
  445. 删除图片:
  446. list:删除返回删除后剩余的图片数组
  447. eq:返回删除的数组
  448. */
  449. imgDelete(list, eq) {
  450. console.log("删除图片_list:", list);
  451. console.log("删除图片_eq:", eq);
  452. this.urlList=list;
  453. console.info("urlList",this.urlList);
  454. },
  455. /*限制文件大小列表*/
  456. limitFileSizeList(list){
  457. console.info('limitFileSizeList:',list);
  458. if(list){
  459. if(list.length>0){
  460. uni.showModal({
  461. title:'警告',
  462. content: list.join()+' 文件大小超过2000KB',
  463. showCancel:false
  464. });
  465. }
  466. }
  467. },
  468. /*限制文件类型列表*/
  469. limitFileTypeList(list,allowFileType){
  470. console.info('limitFileTypeList:',list);
  471. console.info('limitFileTypeList:',allowFileType);
  472. if(list){
  473. if(list.length>0){
  474. uni.showModal({
  475. title:'警告',
  476. content: list.join()+' 文件类型必须是'+allowFileType.join(),
  477. showCancel:false
  478. });
  479. }
  480. }
  481. },
  482. /*
  483. 执行上传服务:
  484. urlList:要上传的图片:数组类型
  485. */
  486. uploadFileToServe(masterCode) {
  487. let _this=this;
  488. var urlList=_this.urlList;
  489. if (!urlList || urlList.length <= 0) {
  490. return;
  491. };
  492. //console.info(urlList);
  493. //return;
  494. for (let i = 0; i < urlList.length; i++) {
  495. uni.uploadFile({
  496. url: '/api/Common/UploadImage',
  497. filePath: urlList[i],
  498. name: 'file',
  499. formData: {
  500. createPerson:_this.$store.state.user.userCode,
  501. masterCode:masterCode,
  502. attachMentType:'RequisitionAttach'
  503. },
  504. headers: {
  505. 'Content-Type': 'multipart/form-data; boundary = ' + new Date().getTime()
  506. //这里要把content-type设置为multipard/form-data,同时还要设置boundary
  507. },
  508. success: (uploadFileRes) => {
  509. console.log("图片上传:",uploadFileRes.data);
  510. }
  511. });
  512. }
  513. },
  514. getDetail(reqisitionCode) {
  515. let that=this;
  516. GetRequistionDetail(reqisitionCode).then((res)=>{
  517. console.info('getDetail',res);
  518. that.entity=res.entity;
  519. that.requisitionName=res.entity.requisitionName;
  520. that.requisitionDate=res.entity.requisitionCode;
  521. that.changeType=res.entity.changeType;
  522. that.requisitionReason=res.entity.requisitionReason;
  523. that.remark=res.entity.remark;
  524. that.requisitionDate=that.entity.requisitionDate.substring(0,10);
  525. that.userCode=res.entity.person;
  526. that.unitCode=res.entity.unitCode;
  527. that.requisitionType=res.entity.requisitionType;
  528. if(that.requisitionType==1){
  529. uni.setNavigationBarTitle({
  530. title:'变更申请单编辑'
  531. });
  532. that.qianzhengName='设计变更类型';
  533. }
  534. else{
  535. uni.setNavigationBarTitle({
  536. title:'签证申请单编辑'
  537. });
  538. that.qianzhengName='签证类型';
  539. }
  540. let type=that.requisitionType;
  541. GetQianzhengDropDown(type).then((res)=>{
  542. console.info("res",res);
  543. res.forEach(function(item,index,array){
  544. that.$set(that.array,index,item);
  545. if(that.changeType==item){
  546. that.index=index;
  547. }
  548. });
  549. });
  550. if(that.entity.projectCode!=that.$store.state.projectCode){
  551. uni.showModal({
  552. title: '提示',
  553. content: '所选择项目与本申请单项目不同,不能修改',
  554. success: function (res) {
  555. if (res.confirm) {
  556. console.log('用户点击确定');
  557. uni.navigateTo({
  558. url:'../requisitionlist/requisitionlist'
  559. });
  560. } else if (res.cancel) {
  561. console.log('用户点击取消');
  562. uni.navigateTo({
  563. url:'../requisitionlist/requisitionlist'
  564. });
  565. }
  566. }
  567. });
  568. return;
  569. }
  570. console.info('person',that.entity.person);
  571. console.info('userCode',that.$store.state.user.userCode);
  572. if(that.entity.person!=that.$store.state.user.userCode){
  573. uni.showModal({
  574. title: '提示',
  575. content: '非本人操作,不能修改',
  576. success: function (res) {
  577. if (res.confirm) {
  578. console.log('用户点击确定');
  579. uni.navigateTo({
  580. url:'../requisitionlist/requisitionlist?type='+that.requisitionType
  581. });
  582. } else if (res.cancel) {
  583. console.log('用户点击取消');
  584. uni.navigateTo({
  585. url:'../requisitionlist/requisitionlist'
  586. });
  587. }
  588. }
  589. });
  590. return;
  591. }
  592. res.list.forEach(function(item,index,arr){
  593. that.$set(that.contractList,index,item);
  594. });
  595. console.info('that.contractList',that.contractList);
  596. // res.attachments.forEach(function(item,index,arr){
  597. // that.$set(that.attachments,index,item);
  598. // })
  599. if(that.array.length>0){
  600. that.array.forEach(function(item,index,arr){
  601. console.info('item',item);
  602. if(item==that.changeType){
  603. that.index=index;
  604. }
  605. });
  606. }
  607. });
  608. }
  609. }
  610. }
  611. </script>
  612. <style scoped>
  613. /* 头条小程序组件内不能引入字体 */
  614. /* #ifdef MP-TOUTIAO */
  615. @font-face {
  616. font-family: uniicons;
  617. font-weight: normal;
  618. font-style: normal;
  619. src: url("~@/static/uni.ttf") format("truetype");
  620. }
  621. /* #endif */
  622. page {
  623. display: flex;
  624. flex-direction: column;
  625. box-sizing: border-box;
  626. background-color: #efeff4;
  627. min-height: 100%;
  628. height: auto;
  629. }
  630. view {
  631. font-size: 14px;
  632. line-height: inherit;
  633. }
  634. .uni-form-item__title {
  635. font-size: 16px;
  636. line-height: 24px;
  637. }
  638. .uni-input-wrapper {
  639. /* #ifndef APP-NVUE */
  640. display: flex;
  641. /* #endif */
  642. padding: 8px 13px;
  643. flex-direction: row;
  644. flex-wrap: nowrap;
  645. background-color: #FFFFFF;
  646. }
  647. .title{
  648. background-color: #efefef;
  649. }
  650. .uni-input {
  651. height: 28px;
  652. line-height: 28px;
  653. font-size: 15px;
  654. padding: 0px;
  655. flex: 1;
  656. background-color: #FFFFFF;
  657. }
  658. .uni-icon {
  659. font-family: uniicons;
  660. font-size: 24px;
  661. font-weight: normal;
  662. font-style: normal;
  663. width: 24px;
  664. height: 24px;
  665. line-height: 24px;
  666. color: #999999;
  667. }
  668. .uni-eye-active {
  669. color: #007AFF;
  670. }
  671. .uni-btn-v{
  672. position: fixed;
  673. bottom: 0;
  674. width:100%;
  675. }
  676. .header-slot-box {
  677. font-size:15px;
  678. margin: 5px 5px;
  679. width:120px !important;
  680. justify-content: center !important;
  681. text-align: center;
  682. white-space: nowrap;
  683. overflow: hidden;
  684. }
  685. .body-slot-box {
  686. font-size:15px;
  687. margin: 5px 5px;
  688. width:160px !important;
  689. justify-content: center !important;
  690. text-align: center;
  691. white-space: nowrap;
  692. overflow: hidden;
  693. }
  694. .footer-slot-box {
  695. font-size:15px;
  696. margin: 5px 5px;
  697. width:120px;
  698. justify-content: center;
  699. white-space: nowrap;
  700. overflow: hidden;
  701. }
  702. .uni-textarea textarea{
  703. font-size:15px;
  704. }
  705. .content {
  706. padding: 40rpx;
  707. background-color: #fff;
  708. }
  709. /* 上传控件 */
  710. .uploadControl {
  711. border: 1rpx solid #eee;
  712. border-radius: 10rpx;
  713. width: 130rpx;
  714. display: block;
  715. height: 130rpx;
  716. text-align: center;
  717. line-height: 130rpx;
  718. font-size: 30rpx;
  719. color: #888;
  720. background-color: #eeeeee;
  721. }
  722. </style>