storage.php 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-image');
  4. ComponentHelper::loadComponentView('com-qq-map');
  5. ?>
  6. <div id="app" v-cloak>
  7. <el-card class="box-card" shadow="never" style="border:0;min-width: 1500px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  8. <div class="form-body">
  9. <el-form :model="ruleForm" :rules="rules" size="small" ref="ruleForm" v-loading="listLoading">
  10. <el-row :gutter="10">
  11. <el-col :span="12">
  12. <el-card shadow="hover">
  13. <el-form-item label="自提点名称" prop="name" :rules="[
  14. {required: true, message: '自提点名称不能为空'}
  15. ]">
  16. <el-input size="small" v-model="ruleForm.name" size="small" placeholder="请输入门店名称"></el-input>
  17. </el-form-item>
  18. <el-form-item label="自提点团长" :rules="[
  19. {required: true, message: '自提点团长不能为空'}
  20. ]">
  21. <el-button type="primary" style="padding:9px 40px" v-if="selectedUserList.length <= 0" size="small" @click.sync='chooseUser'>+选择团长 </el-button>
  22. </el-form-item>
  23. <div v-if="selectedUserList.length > 0" style="margin-bottom:24px;padding-left:28px;">
  24. <template>
  25. <el-table :data="selectedUserList" stripe>
  26. <el-table-column prop="id" label="id">
  27. </el-table-column>
  28. <el-table-column prop="avatar_url" label="头像">
  29. <template slot-scope="scope">
  30. <com-image mode="aspectFill" :src="scope.row.avatar_url"></com-image>
  31. </template>
  32. </el-table-column>
  33. <el-table-column prop="nickname" label="昵称">
  34. </el-table-column>
  35. <el-table-column prop="mobile" label="手机号">
  36. </el-table-column>
  37. <el-table-column label="操作">
  38. <template slot-scope="scope">
  39. <el-button @click="deleteOneUser(scope.$index)" type="text" size="small">删除</el-button>
  40. </template>
  41. </el-table-column>
  42. </el-table>
  43. </template>
  44. </div>
  45. <el-form-item label="自提点简介" prop="desc" :rules="[
  46. {required: true, message: '自提点简介不能为空'}
  47. ]">
  48. <el-input type="textarea" size="small" v-model="ruleForm.desc" size="small" placeholder="请输入自提点简介" maxlength="255" show-word-limit></el-input>
  49. </el-form-item>
  50. <el-form-item prop="logo" class="com-goods" label="自提点LOGO" :rules="[
  51. {required: true, message: '自提点LOGO不能为空'}
  52. ]">
  53. <div>
  54. <div class="pic-url-remark">
  55. 建议尺寸 200px*200px
  56. </div>
  57. <template v-if="ruleForm.logo">
  58. <div style="margin-right: 20px;position: relative;display: inline-block;">
  59. <com-attachment :multiple="false" :max="1" type="images">
  60. <com-image mode="aspectFill" width="100px" height='100px' :src="ruleForm.logo"> </com-image>
  61. </com-attachment>
  62. <el-button class="del-btn" size="mini" type="danger" icon="el-icon-close" circle @click="delPic('logo')"></el-button>
  63. </div>
  64. </template>
  65. <template v-if="!ruleForm.logo">
  66. <com-attachment :multiple="false" :max="1" type="images" @selected="selectedImg($event, 'logo')">
  67. <el-tooltip class="item" effect="dark" content="建议尺寸:200px * 200px" placement="top">
  68. <div flex="main:center cross:center" class="add-image-btn">
  69. + 添加图片
  70. </div>
  71. </el-tooltip>
  72. </com-attachment>
  73. </template>
  74. <el-input v-model="ruleForm.logo" style="display: none"></el-input>
  75. </div>
  76. </el-form-item>
  77. <el-form-item prop="license_img" class="com-goods" label="营业执照" :rules="[
  78. {required: true, message: '自提点营业执照图片不能为空'}
  79. ]">
  80. <div>
  81. <template v-if="ruleForm.license_img">
  82. <div style="margin-right: 20px;position: relative;display: inline-block;">
  83. <com-attachment v-model="ruleForm.license_img">
  84. <com-image v-if="ruleForm.license_img" mode="aspectFill" width="100px" height='100px' :src="ruleForm.license_img"> </com-image>
  85. </com-attachment>
  86. <el-button class="del-btn" size="mini" type="danger" icon="el-icon-close" circle @click="delPic('license_img')"></el-button>
  87. </div>
  88. </template>
  89. <template v-if="!ruleForm.license_img">
  90. <com-attachment :multiple="false" :max="1" type="images" @selected="selectedImg($event, 'license_img')">
  91. <div flex="main:center cross:center" class="add-image-btn">
  92. + 添加图片
  93. </div>
  94. </com-attachment>
  95. </template>
  96. <el-input v-model="ruleForm.license_img" style="display: none"></el-input>
  97. </div>
  98. </el-form-item>
  99. <el-form-item label="身份证" prop="id_card_images" :rules="[
  100. {required: true, message: '必须上传正反面两张证件照'},
  101. ]">
  102. <div flex="dir:left">
  103. <!-- 一定要绑定key -->
  104. <div class="card-coverimg" v-for="(item, index) in ruleForm.idcard_img" :key="index">
  105. <el-image class="elImages" style="width: 80px; height: 80px;cursor: move;" :src="item"></el-image>
  106. <el-button @click="delPic('idcard_img', index)" class="icon-close" type="primary" size="mini" icon="el-icon-close" circle></el-button>
  107. </div>
  108. <com-attachment v-if="ruleForm.idcard_img.length < 2" :multiple="true" :max="2" type="images" @selected="selectedImg($event, 'idcard_img')">
  109. <div class="card-upload">
  110. <i class="el-icon-plus"></i>
  111. </div>
  112. </com-attachment>
  113. <el-input v-model="ruleForm.id_card_images" style="display: none"></el-input>
  114. </div>
  115. </el-form-item>
  116. </el-card>
  117. </el-col>
  118. <el-col :span="12">
  119. <el-card shadow="hover">
  120. <el-form-item label="联系人姓名" prop="contacts" :rules="[
  121. {required: true, message: '联系人姓名不能为空'}
  122. ]">
  123. <el-input size="small" v-model="ruleForm.contacts" placeholder="请输入联系人姓名"></el-input>
  124. </el-form-item>
  125. <el-form-item label="联系人手机号" prop="mobile" :rules="[
  126. {required: true, message: '联系人手机号码不能为空'}
  127. ]">
  128. <el-input size="small" v-model="ruleForm.mobile" placeholder="请输入联系人手机号"></el-input>
  129. </el-form-item>
  130. <el-form-item label="所在区域" prop="district_id" :rules="[
  131. {required: true, message: '所在区域不能为空'}
  132. ]">
  133. <div class="flex flex-x-center">
  134. <el-select v-model="provinceInfo" value-key='id' placeholder="请选择省" @change="regionChange($event, 1)">
  135. <el-option v-for="item in provinces" :key="item.id" :label="item.name" :value="item"></el-option>
  136. </el-select>
  137. <el-select v-model="cityInfo" value-key='id' placeholder="请选择市" @change="regionChange($event, 2)">
  138. <el-option v-for="item in citys" :key="item.id" :label="item.name" :value="item"></el-option>
  139. </el-select>
  140. <el-select v-model="districtInfo" value-key='id' placeholder="请选择区" @change='regionChange($event, 3)'>
  141. <el-option v-for="item in districts" :key="item.id" :label="item.name" :value="item"></el-option>
  142. </el-select>
  143. <el-input v-model="ruleForm.district_id" style="display: none"></el-input>
  144. </div>
  145. </el-form-item>
  146. <el-form-item label="详细地址" prop="address" :rules="[
  147. {required: true, message: '详细地址不能为空'}
  148. ]">
  149. <el-input size="small" v-model="ruleForm.address" placeholder="请输入门店详细地址"></el-input>
  150. </el-form-item>
  151. <el-form-item label="经纬度" prop="longitude" :rules="[
  152. {required: true, message: '经纬度不能为空'}
  153. ]">
  154. <el-input size="small" v-model="long_lat" disabled></el-input>
  155. </el-form-item>
  156. <!-- 地图 start -->
  157. <com-qq-map @map-submit="mapEvent" :address="ruleForm.address" :lat="ruleForm.latitude" :long="ruleForm.longitude">
  158. <el-button style="margin-left: 120px;font-size:12px;border-radius:3px;padding:10px 40px;" type="primary">展开地图</el-button>
  159. </com-qq-map>
  160. <!-- 地图 end -->
  161. <el-form-item label="送货上门">
  162. <el-switch v-model="ruleForm.is_home_delivery" :active-value="1" :inactive-value="0"></el-switch>
  163. </el-form-item>
  164. </el-card>
  165. </el-col>
  166. </el-row>
  167. <h3>团长奖励设置</h3>
  168. <el-form-item label="是否启用自提奖励" class='reward_diy_label'>
  169. <el-switch :active-value="1" :inactive-value="0" v-model="ruleForm.setting.is_enable_reward"></el-switch>
  170. <br/>
  171. <div class="tips-text" style="line-height: 24px;">
  172. 设置自提点奖励,开启后团长(自提点管理员)有自提订单就可以获得自提奖励
  173. </div>
  174. </el-form-item>
  175. <el-row :gutter="10" v-if="ruleForm.setting.is_enable_reward == 1">
  176. <el-form-item label="结算方式" class='reward_diy_label' prop="settlement_type">
  177. <el-radio-group v-model="ruleForm.setting.settlement_type">
  178. <el-radio :label="1">订单支付后</el-radio>
  179. <el-radio :label="7">订单取货后</el-radio>
  180. </el-radio-group>
  181. <br/>
  182. <div class="tips-text" style="line-height: 24px;">
  183. 设置自提奖励佣金的结算方式
  184. </div>
  185. </el-form-item>
  186. <el-form-item label="计算方式" class='reward_diy_label' prop="calculate_type">
  187. <el-radio-group v-model="ruleForm.setting.calculate_type">
  188. <el-radio :label="0">实际支付金额</el-radio>
  189. <el-radio :label="1">商品售价</el-radio>
  190. <el-radio :label="2">商品利润</el-radio>
  191. </el-radio-group>
  192. <br/>
  193. <div class="tips-text" style="line-height: 24px;">
  194. 如团长奖励设置为百分比这按这里的计算方式进行计算
  195. </div>
  196. </el-form-item>
  197. <el-form-item label="结算方式" class='reward_diy_label' prop="head_commission_type">
  198. <el-radio-group v-model="ruleForm.setting.head_commission_type">
  199. <el-radio :label="0">固定金额</el-radio>
  200. <el-radio :label="1">百分比</el-radio>
  201. </el-radio-group>
  202. <br/>
  203. <div class="tips-text" style="line-height: 24px;">
  204. 自提奖励设置
  205. </div>
  206. <el-form-item label="" class='reward_diy_input' prop="commission">
  207. <el-input style="width: 200px;" v-model="ruleForm.setting.commission">
  208. <template #append>
  209. {{ruleForm.setting.head_commission_type == 0 ? '元' : '%'}}
  210. </template>
  211. </el-input>
  212. </el-form-item>
  213. </el-form-item>
  214. </el-row>
  215. </el-form>
  216. </div>
  217. <el-button class="button-item" style="margin-bottom: 15px;" type="primary" @click="submitForm('ruleForm')" size="small" :loading="btnLoading">保存
  218. </el-button>
  219. </el-card>
  220. <el-dialog title="添加会员" :visible.sync="dialogVisible" width="50%">
  221. <div class="search-box">
  222. <div class="input-item">
  223. <el-input @keyup.enter.native="getUser" size="small" placeholder="请输入会员ID" v-model="searchData.user_id"> </el-input>
  224. </div>
  225. <div class="input-item">
  226. <el-input @keyup.enter.native="getUser" size="small" placeholder="会员昵称/手机号" v-model="searchData.keyword"> </el-input>
  227. </div>
  228. <el-button type="primary" size="small" @click="getUser">搜索</el-button>
  229. <el-button type="warning" size="small" @click="clereSearch" v-if="searchData.keyword || searchData.user_id" style="padding: 9px 15px !important;">清除搜索条件</el-button>
  230. </div>
  231. <el-table :data="userList" stripe v-loading="userListLoading" style="width: 100%">
  232. <el-table-column prop="date" width="50">
  233. <template slot-scope="scope">
  234. <el-radio v-model="userInfo" :label="scope.row" @change="clickChange"><i></i></el-radio>
  235. </template>
  236. </el-table-column>
  237. <el-table-column prop="id" label="ID" width="80"> </el-table-column>
  238. <el-table-column prop="avatar_url" label="会员" width="80">
  239. <template slot-scope="scope">
  240. <el-image style="width: 60px; height: 60px" :src="scope.row.avatar_url" fit="cover"></el-image>
  241. </template>
  242. </el-table-column>
  243. <el-table-column prop="nickname" width="180"> </el-table-column>
  244. <el-table-column prop="mobile" label="手机号" width="200">
  245. </el-table-column>
  246. <el-table-column prop="level_name" label="会员等级">
  247. <template slot-scope="scope">
  248. <div v-if="scope.row.level > 0">等级{{scope.row.level_name}}</div>
  249. <div v-else>普通用户</div>
  250. </template>
  251. </el-table-column>
  252. <el-table-column prop="parent_nickname" label="已绑定推荐人">
  253. </el-table-column>
  254. </el-table>
  255. <div style="text-align: right;margin: 20px 0;">
  256. <el-pagination @current-change="pagination" background layout="prev, pager, next" :page-count="pageCount"></el-pagination>
  257. </div>
  258. <span slot="footer" class="dialog-footer">
  259. <el-button @click="dialogVisible = false">取 消</el-button>
  260. <el-button type="primary" @click="selectUser">确 定</el-button>
  261. </span>
  262. </el-dialog>
  263. </div>
  264. <script>
  265. const app = new Vue({
  266. el: '#app',
  267. data() {
  268. return {
  269. listLoading: false,
  270. btnLoading: false,
  271. userListLoading: false,
  272. dialogVisible: false,
  273. ruleForm: {
  274. id: 0,
  275. name: '',
  276. mobile: '',
  277. logo: '',
  278. user_id: '',
  279. address: '',
  280. idcard_img: [],
  281. desc: '',
  282. license_img: '',
  283. longitude: '',
  284. latitude: '',
  285. province_id: 0,
  286. city_id: 0,
  287. district_id: 0,
  288. is_home_delivery: 0,
  289. contacts: '',
  290. id_card_images: '',
  291. setting: {
  292. "is_enable_reward" : 0,
  293. "settlement_type" : 1,
  294. "calculate_type" : 0,
  295. "head_commission_type": 0,
  296. "commission": 0,
  297. },
  298. },
  299. categorys: [],
  300. provinces: [],
  301. provinceInfo: {},
  302. citys: [],
  303. cityInfo: {},
  304. districts: [],
  305. districtInfo: {},
  306. streets: [],
  307. streetInfo: {},
  308. userList: [],
  309. selectedUserList: [],
  310. userInfo: {},
  311. searchData: {
  312. user_id: null,
  313. keyword: '',
  314. },
  315. currPage: 1,
  316. pageCount: 0,
  317. rules: {
  318. },
  319. page: 1,
  320. long_lat: '', // 经纬度
  321. };
  322. },
  323. mounted() {
  324. let id = getQuery('id') > 0 ? getQuery('id') : 0;
  325. this.ruleForm.id = id;
  326. this.loadData(this.ruleForm.id);
  327. },
  328. methods: {
  329. loadData(id = 0) {
  330. let self = this;
  331. self.listLoading = true;
  332. request({
  333. params: {
  334. r: 'community/community-head/storage',
  335. id: id,
  336. },
  337. method: 'get',
  338. }).then(e => {
  339. self.listLoading = false;
  340. if (e.data.code == 0) {
  341. self.provinces = e.data.data.provinces;
  342. self.citys = e.data.data.citys;
  343. self.districts = e.data.data.districts;
  344. self.ruleForm = Object.assign(self.ruleForm, e.data.data.community_head);
  345. if (self.ruleForm.idcard_img) {
  346. self.ruleForm.id_card_images = "1"
  347. } else {
  348. self.ruleForm.idcard_img = []
  349. }
  350. // self.ruleForm.setting = e.data.data.community_head
  351. self.long_lat = self.ruleForm.longitude + '-' + self.ruleForm.latitude;
  352. self.provinceInfo = e.data.data.provinceInfo;
  353. self.cityInfo = e.data.data.cityInfo;
  354. self.districtInfo = e.data.data.districtInfo;
  355. if (e.data.data.community_head.user) {
  356. self.selectedUserList.push(e.data.data.community_head.user);
  357. }
  358. }
  359. }).catch(e => {
  360. console.log(e);
  361. self.listLoading = false;
  362. self.$message.error('网络错误');
  363. });
  364. },
  365. submitForm(formName) {
  366. let self = this;
  367. self.btnLoading = true;
  368. self.$refs[formName].validate((valid, obj) => {
  369. if (valid) {
  370. request({
  371. params: {
  372. r: 'community/community-head/storage',
  373. },
  374. method: 'post',
  375. data: self.ruleForm,
  376. }).then(e => {
  377. self.btnLoading = false;
  378. if (e.data.code == 0) {
  379. self.$message.success('保存成功');
  380. navigateTo({
  381. r: 'community/community-head/index'
  382. })
  383. } else {
  384. self.$message.error(e.data.msg);
  385. }
  386. }).catch(e => {
  387. self.btnLoading = false;
  388. console.log(e);
  389. self.$message.error('网络错误');
  390. return false;
  391. });
  392. } else {
  393. self.btnLoading = false;
  394. var msg = '';
  395. for (let index in obj) {
  396. msg = msg + '*' + obj[index][0].message + ' ';
  397. }
  398. this.$message({
  399. message: msg,
  400. type: 'error'
  401. });
  402. return false;
  403. }
  404. });
  405. },
  406. selectedImg(e, key) {
  407. // console.log('ddddd: ', e, key);
  408. if (key === 'idcard_img') {
  409. for (let i in e) {
  410. this.ruleForm[key].push(e[i].url)
  411. }
  412. this.ruleForm.id_card_images = this.ruleForm[key].length === 2 ? this.ruleForm[key].join(",") : ''
  413. } else {
  414. this.ruleForm[key] = e[0].url;
  415. }
  416. this.$forceUpdate();
  417. },
  418. delPic(key, index) {
  419. if (key === 'idcard_img') {
  420. this.ruleForm[key].splice(index, 1)
  421. } else {
  422. this.ruleForm[key] = '';
  423. }
  424. this.$forceUpdate();
  425. },
  426. deleteOneUser(index) {
  427. this.selectedUserList.splice(index, 1);
  428. },
  429. // 省市区三级联动
  430. regionChange(e, level) {
  431. let self = this;
  432. self.ruleForm.longitude = e.lng;
  433. self.ruleForm.latitude = e.lat;
  434. self.long_lat = e.lng + '-' + e.lat;
  435. request({
  436. params: {
  437. r: 'community/community-head/get-regions',
  438. region_id: e.id,
  439. },
  440. method: 'get',
  441. }).then(e => {
  442. if (e.data.code == 0) {
  443. switch (level) {
  444. case 1:
  445. self.citys = e.data.data;
  446. this.ruleForm.province_id = this.provinceInfo.id
  447. // 当省改变时,清空市和区
  448. self.cityInfo = {};
  449. self.districtInfo = {};
  450. self.districts = [];
  451. break;
  452. case 2:
  453. self.districts = e.data.data;
  454. this.ruleForm.city_id = this.cityInfo.id
  455. // 当市改变时,清空区
  456. self.districtInfo = {};
  457. self.streets = [];
  458. break;
  459. case 3:
  460. self.streets = e.data.data;
  461. this.ruleForm.district_id = this.districtInfo.id
  462. break;
  463. }
  464. } else {
  465. self.$message.error(e.data.msg);
  466. }
  467. }).catch(e => {
  468. console.log(e);
  469. self.$message.error('网络错误');
  470. return false;
  471. });
  472. },
  473. //地图确定事件
  474. mapEvent(e) {
  475. // console.log('map-event: ', e);
  476. this.ruleForm.longitude = e.long;
  477. this.ruleForm.latitude = e.lat;
  478. this.ruleForm.address = e.address;
  479. this.long_lat = e.lat + '-' + e.long;
  480. this.$forceUpdate();
  481. // 清除之前验证
  482. this.clearValidate('ruleForm');
  483. // console.log('this.ruleForm: ', this.ruleForm);
  484. },
  485. clearValidate(formName) {
  486. this.$refs[formName].clearValidate();
  487. },
  488. // 获取会员列表
  489. getUser() {
  490. let self = this;
  491. self.userListLoading = true;
  492. request({
  493. params: {
  494. r: 'community/community-head/get-users',
  495. page: self.currPage,
  496. ...self.searchData,
  497. },
  498. method: 'get',
  499. }).then(e => {
  500. self.userListLoading = false;
  501. if (e.data.code == 0) {
  502. self.userList = e.data.data.list;
  503. self.pageCount = e.data.data.page_count;
  504. } else {
  505. self.$message.error(e.data.msg);
  506. return false;
  507. }
  508. }).catch(e => {
  509. console.log(e);
  510. self.$message.error('网络错误');
  511. return false;
  512. });
  513. },
  514. // 选择会员
  515. chooseUser() {
  516. this.getUser()
  517. this.dialogVisible = true;
  518. },
  519. // 会员列表分页
  520. pagination(currentPage) {
  521. this.currPage = currentPage;
  522. this.getUser();
  523. },
  524. // 选中会员确定回调
  525. selectUser() {
  526. this.ruleForm.user_id = this.userInfo.id;
  527. this.ruleForm.mobile = this.userInfo.mobile;
  528. this.dialogVisible = false;
  529. },
  530. // 会员列表选中
  531. clickChange(userInfo) {
  532. this.selectedUserList = []
  533. this.selectedUserList.push(userInfo);
  534. },
  535. // 清楚搜索条件
  536. clereSearch() {
  537. this.searchData.user_id = null;
  538. this.searchData.keyword = '';
  539. this.getUser();
  540. },
  541. }
  542. });
  543. </script>
  544. <style>
  545. .el-popover {
  546. padding: 30px;
  547. }
  548. .form-body {
  549. padding: 20px;
  550. background-color: #fff;
  551. margin-bottom: 20px;
  552. padding-right: 20%;
  553. min-width: 900px;
  554. }
  555. /* .form-body .el-form-item {
  556. padding-right: 25%;
  557. min-width: 850px;
  558. } */
  559. .form-button {
  560. margin: 0;
  561. }
  562. .form-button .el-form-item__content {
  563. margin-left: 0 !important;
  564. }
  565. .button-item {
  566. padding: 9px 25px;
  567. }
  568. .check-group {
  569. font-size: 14px !important;
  570. }
  571. .check-group .el-col {
  572. display: flex;
  573. }
  574. .check-group .el-input {
  575. margin: 0 5px;
  576. }
  577. .check-group .el-col .el-checkbox {
  578. display: flex;
  579. align-items: center;
  580. }
  581. .check-group .el-col .el-input {
  582. width: 100px;
  583. }
  584. .check-group .el-col .el-input .el-input__inner {
  585. height: 30px;
  586. width: 100px;
  587. }
  588. .el-checkbox-group .el-col {
  589. margin-bottom: 10px;
  590. }
  591. .inp {
  592. width: 140px;
  593. }
  594. .inp .el-input__inner {
  595. border-radius: 4px 0 0 4px;
  596. }
  597. .inp2 {
  598. width: 60px;
  599. }
  600. .inp-text {
  601. background: #EFEFEF;
  602. border: 1px solid #E3E2E5;
  603. font-size: 15px;
  604. padding: 0px 15px;
  605. border-radius: 0 4px 4px 0;
  606. height: 32px;
  607. }
  608. /* flex公共样式 */
  609. .flex {
  610. display: -webkit-box;
  611. display: -webkit-flex;
  612. display: flex;
  613. }
  614. .flex-x-center {
  615. display: -webkit-box;
  616. display: -webkit-flex;
  617. display: flex;
  618. -webkit-box-pack: center;
  619. -webkit-justify-content: center;
  620. -ms-flex-pack: center;
  621. justify-content: center;
  622. }
  623. .flex-x-between {
  624. display: -webkit-box;
  625. display: -webkit-flex;
  626. display: flex;
  627. -webkit-box-pack: space-between;
  628. -webkit-justify-content: space-between;
  629. -ms-flex-pack: space-between;
  630. justify-content: space-between;
  631. }
  632. .flex-y-center {
  633. display: -webkit-box;
  634. display: -webkit-flex;
  635. display: flex;
  636. -webkit-box-align: center;
  637. -webkit-align-items: center;
  638. -ms-flex-align: center;
  639. -ms-grid-row-align: center;
  640. align-items: center;
  641. }
  642. .flex-y-bottom {
  643. display: -webkit-box;
  644. display: -webkit-flex;
  645. display: flex;
  646. -webkit-box-align: end;
  647. -webkit-align-items: flex-end;
  648. -ms-flex-align: end;
  649. -ms-grid-row-align: flex-end;
  650. align-items: flex-end;
  651. }
  652. .pic-url-remark {
  653. font-size: 13px;
  654. color: #c9c9c9;
  655. margin-bottom: 12px;
  656. }
  657. .add-image-btn {
  658. width: 100px;
  659. height: 100px;
  660. color: #419EFB;
  661. border: 1px solid #e2e2e2;
  662. cursor: pointer;
  663. }
  664. .del-btn {
  665. position: absolute;
  666. right: -14px;
  667. top: -14px;
  668. }
  669. /* .el-input__inner {
  670. width: 74%;
  671. } */
  672. /* .el-input-group {
  673. width: 69%;
  674. } */
  675. /* .el-input.is-disabled .el-input__inner {
  676. width: 49%;
  677. } */
  678. .search-box {
  679. display: flex;
  680. margin-bottom: 30px;
  681. }
  682. .input-item {
  683. width: 200px;
  684. margin-right: 16px;
  685. }
  686. div.el-form-item__content {
  687. margin-left: 120px !important;
  688. }
  689. .el-form-item__label {
  690. width: 120px !important;
  691. }
  692. .reward_diy_label .el-form-item__label {
  693. width: 150px !important;
  694. }
  695. .reward_diy_label .el-form-item__content {
  696. margin-left: 150px !important;
  697. }
  698. .reward_diy_input .el-form-item__content {
  699. margin-left: 0px !important;
  700. }
  701. </style>