InStoreEdit.vue 21 KB

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