requisitionedit.vue 21 KB

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