index.php 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-dialog-select');
  4. ComponentHelper::loadComponentView('com-qq-map');
  5. ?>
  6. <div id="app" v-cloak>
  7. <el-card class="box-card" v-loading="loading" shadow="never" style="border:0;min-width: 1200px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  8. <div slot="header">
  9. <div>
  10. <span>基础设置</span>
  11. </div>
  12. </div>
  13. <el-form :model="ruleForm" :rules="rules" size="small" ref="ruleForm" label-width="240px">
  14. <el-card style="margin-top: 10px" shadow="never" :body-style="{ padding: '0px' }">
  15. <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
  16. <el-tab-pane label="基础设置" name="basic" style="padding: 10px">
  17. <!-- <el-form-item prop="share_title">-->
  18. <!-- <label slot="label">-->
  19. <!-- <span>自定义分享标题</span>-->
  20. <!-- <el-tooltip effect="dark" content="分享给好友时,显示的标题"-->
  21. <!-- placement="top">-->
  22. <!-- <i class="el-icon-info"></i>-->
  23. <!-- </el-tooltip>-->
  24. <!-- </label>-->
  25. <!-- <el-input style="width: 500px" placeholder="请输入分享标题,标题中需带分享者昵称,则加变量%s" v-model="ruleForm.share_title"></el-input>-->
  26. <!-- </el-form-item>-->
  27. <!---->
  28. <!-- <el-form-item prop="share_desc">-->
  29. <!-- <label slot="label">-->
  30. <!-- <span>自定义分享描述</span>-->
  31. <!-- <el-tooltip effect="dark" content="分享给好友时,显示的描述" placement="top">-->
  32. <!-- <i class="el-icon-info"></i>-->
  33. <!-- </el-tooltip>-->
  34. <!-- </label>-->
  35. <!-- <el-input style="width: 800px" type="textarea" placeholder="请输入分享描述,如需带分享者昵称,则加变量%s" v-model="ruleForm.share_desc"></el-input>-->
  36. <!-- </el-form-item>-->
  37. <el-form-item label="公司名称" prop="company" >
  38. <el-input style="width: 500px" placeholder="请输入公司名称" v-model="ruleForm.company" type="text"></el-input>
  39. </el-form-item>
  40. <!-- <el-form-item label="公司地址" prop="address" >-->
  41. <!-- <el-input style="width: 800px" placeholder="请输入公司地址" v-model.number="ruleForm.address" type="text"></el-input>-->
  42. <!-- </el-form-item>-->
  43. <el-form-item label="公司地址" prop="address" :rules="[
  44. {required: true, message: '公司地址不能为空'}
  45. ]">
  46. <el-input size="small" style="width: 800px" v-model="ruleForm.address" v-mtfocus placeholder="请输入公司地址"></el-input>
  47. </el-form-item>
  48. <el-form-item label="经纬度" prop="lng" :rules="[
  49. {required: true, message: '经纬度不能为空'}
  50. ]">
  51. <el-input size="small" style="width: 800px" v-model="long_lat" disabled>
  52. <template #append>
  53. </template>
  54. </el-input>
  55. <!-- 地图 start -->
  56. <com-qq-map style="margin-top: 10px" @map-submit="mapEvent" :address="ruleForm.address" :lat="ruleForm.lat" :long="ruleForm.lng">
  57. <el-button type="primary">展开地图</el-button>
  58. </com-qq-map>
  59. </el-form-item>
  60. <el-form-item label="公司logo" prop="logo" >
  61. <com-attachment v-model="ruleForm.logo" :multiple="false" :max="1">
  62. <el-tooltip class="item" effect="dark" content="建议尺寸:420 * 336" placement="top">
  63. <el-button size="mini">选择图片</el-button>
  64. </el-tooltip>
  65. </com-attachment>
  66. <div v-if="ruleForm.logo" class="customize-share-title">
  67. <el-image mode="aspectFill" width='80px' height='80px' :src="ruleForm.logo ? ruleForm.logo : ''"></el-image>
  68. <el-button v-if="ruleForm.logo" class="del-btn" size="mini" type="danger" icon="el-icon-close" circle @click="ruleForm.logo = ''"></el-button>
  69. </div>
  70. </el-form-item>
  71. <el-form-item label="视频简介" prop="video_url">
  72. <el-input v-model="ruleForm.video_url" placeholder="请输入视频原地址或选择上传视频" class="width-560">
  73. <template slot="append">
  74. <com-attachment :multiple="false" :max="1" @selected="videoUrl" type="videos">
  75. <el-tooltip class="item" effect="dark" content="支持格式mp4;支持编码H.264;视频大小不能超过50 MB" placement="top">
  76. <el-button size="mini">添加视频</el-button>
  77. </el-tooltip>
  78. </com-attachment>
  79. </template>
  80. </el-input>
  81. <el-link class="box-grow-0" type="primary" style="font-size:12px" v-if='ruleForm.video_url'
  82. :underline="false" target="_blank" :href="ruleForm.video_url">视频链接
  83. </el-link>
  84. </el-form-item>
  85. <el-form-item label="视频封面" prop="video_cover_pic">
  86. <com-attachment v-if="!ruleForm.video_cover_pic" :multiple="false" :max="1" type="images" @selected="videoCoverPic">
  87. <div class="card-upload">
  88. <i class="el-icon-plus"></i>
  89. </div>
  90. </com-attachment>
  91. <div class="card-coverimg" v-else>
  92. <el-image style="width: 80px; height: 80px" :src="ruleForm.video_cover_pic"></el-image>
  93. <el-button @click="ruleForm.video_cover_pic = ''" class="icon-close" type="danger" size="mini" icon="el-icon-close" circle></el-button>
  94. </div>
  95. <p style="color: #999">建议尺寸:750 * 450px</p>
  96. </el-form-item>
  97. <el-form-item prop="images">
  98. <template slot="label">
  99. <span>公司图文介绍(多张)</span>
  100. <el-tooltip effect="dark" placement="top" content="第一张图片为封面图">
  101. <i class="el-icon-info"></i>
  102. </el-tooltip>
  103. </template>
  104. <div flex="dir:left">
  105. <draggable v-model="ruleForm.images" v-if="ruleForm.images.length" flex="dif:left">
  106. <div class="card-coverimg" v-for="(item, index) in ruleForm.images">
  107. <el-image :preview-src-list="ruleForm.images" mode="aspectFill" class="elImages"
  108. style="width: 80px; height: 80px; cursor: move" :src="item"></el-image>
  109. <el-button @click="handle('delPic', index)" class="icon-close" type="danger" size="mini" icon="el-icon-close" circle></el-button>
  110. </div>
  111. </draggable>
  112. <com-attachment v-if="ruleForm.images.length < 8" :multiple="true" :max="9" type="images" @selected="handle('picUrl', $event)">
  113. <div class="card-upload">
  114. <i class="el-icon-plus"></i>
  115. </div>
  116. </com-attachment>
  117. </div>
  118. <p class="tips-text">第一张图片为缩略图,可拖拽使其改变顺序,最多支持上传8张</p>
  119. </el-form-item>
  120. <el-form-item label="个人简介" prop="company" >
  121. <el-input style="width: 500px" placeholder="请输入个人简介" v-model="ruleForm.sign" type="textarea" :rows="3"></el-input>
  122. </el-form-item>
  123. <h3>其他设置</h3>
  124. <el-form-item label="背景图" prop="share_pic">
  125. <com-attachment v-if="!ruleForm.share_pic" :multiple="false" :max="1" type="images" @selected="sharePic">
  126. <div class="card-upload">
  127. <i class="el-icon-plus"></i>
  128. </div>
  129. </com-attachment>
  130. <div class="card-coverimg" v-else>
  131. <el-image style="width: 80px; height: 80px" :src="ruleForm.share_pic"></el-image>
  132. <el-button @click="ruleForm.share_pic = ''" class="icon-close" type="danger" size="mini" icon="el-icon-close" circle></el-button>
  133. </div>
  134. <p style="color: #999">建议尺寸:450 * 450px</p>
  135. </el-form-item>
  136. <el-form-item label="名片列表展示">
  137. <label slot="label">
  138. <span>名片列表展示</span>
  139. <el-tooltip effect="dark" content="身份角色被勾选以后前端用户对应的角色才可以查看名片列表的用户(企业名片)" placement="top">
  140. <i class="el-icon-info"></i>
  141. </el-tooltip>
  142. </label>
  143. <el-checkbox-group v-model="ruleForm.list_card_show">
  144. <el-checkbox label="boss">boss列表展示</el-checkbox>
  145. <el-checkbox label="leader">主管列表展示</el-checkbox>
  146. </el-checkbox-group>
  147. </el-form-item>
  148. <el-form-item label="是否开启名片密令">
  149. <label slot="label">
  150. <span>是否开启名片密令</span>
  151. <el-tooltip effect="dark" content="开启名片密令,前端显示弹框并且需要输入密令" placement="top">
  152. <i class="el-icon-info"></i>
  153. </el-tooltip>
  154. </label>
  155. <el-switch
  156. v-model="ruleForm.is_card_token"
  157. :active-value="1"
  158. :inactive-value="0"
  159. >
  160. </el-switch>
  161. </el-form-item>
  162. <el-form-item label="名片密令" v-if="ruleForm.is_card_token == 1">
  163. <label slot="label">
  164. <span>名片密令</span>
  165. <el-tooltip effect="dark" content="用户需要输入当前密令才能创建名片" placement="top">
  166. <i class="el-icon-info"></i>
  167. </el-tooltip>
  168. </label>
  169. <el-input style="width: 500px" placeholder="请输入名片密令" v-model="ruleForm.card_token" type="text"></el-input>
  170. </el-form-item>
  171. <el-form-item prop="goods_list">
  172. <template slot="label">
  173. <span>名片推广商品</span>
  174. </template>
  175. <div style="display: inline-block;">
  176. <div flex="cross:center">
  177. <!-- <div>指定商品</div> -->
  178. <div style="margin-left: 10px;">
  179. <com-dialog-select :multiple="true" @selected="goodsSelect" title="商品选择">
  180. <el-button>选择商品</el-button>
  181. </com-dialog-select>
  182. </div>
  183. </div>
  184. </div>
  185. </el-form-item>
  186. <el-form-item v-if="goods_list && goods_list.length > 0">
  187. <div style="max-width:400px;max-height: 300px;overflow-y: auto;background-color: #eee;margin-bottom: 5px;" v-for="(item,index) in goods_list">
  188. <div flex>
  189. <div style="padding-right: 10px;flex-grow: 0">
  190. <com-image mode="aspectFill"
  191. :src="item.cover_pic"></com-image>
  192. </div>
  193. <div style="flex-grow: 1;">
  194. <com-ellipsis :line="2">{{item.goods_name}}
  195. </com-ellipsis>
  196. </div>
  197. <div style="flex-grow: 0;">
  198. <el-button @click="handle('deleteGoods', index)"
  199. type="text" circle size="mini">
  200. <el-tooltip class="item" effect="dark"
  201. content="删除" placement="top">
  202. <img src="resources/img/mall/del.png" alt="">
  203. </el-tooltip>
  204. </el-button>
  205. </div>
  206. </div>
  207. </div>
  208. </el-form-item>
  209. <h3>名片样式</h3>
  210. <el-row :gutter="30">
  211. <el-col :span="4" style="position: relative">
  212. <el-button :style="ruleForm.style == 0 ? '' : 'display: none'"
  213. type="success" class="icon-check" size="mini" icon="el-icon-check" circle></el-button>
  214. <el-card style="cursor: pointer" title="选择样式1" :body-style="{ padding: '0px' }" shadow="hover" :class="ruleForm.style == 0 ? 'selected-style' : ''">
  215. <img @click="onChangeStyle(0)" style="width: 100%" :src="diy_img_prefix+'/static/addons/business-card/style-0.png'" class="image">
  216. <div @click="onChangeStyle(0)" style="padding: 14px; text-align: center">
  217. <span>样式1</span>
  218. </div>
  219. </el-card>
  220. </el-col>
  221. <el-col :span="6" style="position: relative">
  222. <el-button :style="ruleForm.style == 1 ? '' : 'display: none'" class="icon-check" type="success" size="mini" icon="el-icon-check" circle></el-button>
  223. <el-card style="cursor: pointer" title="选择样式2" :body-style="{ padding: '0px' }" shadow="hover" :class="ruleForm.style == 1 ? 'selected-style' : ''">
  224. <img @click="onChangeStyle(1)" style="width: 100%" :src="diy_img_prefix+'/static/addons/business-card/style-1.png'" class="image">
  225. <div @click="onChangeStyle(1)" style="padding: 14px; text-align: center">
  226. <span>样式2</span>
  227. </div>
  228. </el-card>
  229. </el-col>
  230. </el-row>
  231. </el-tab-pane>
  232. <el-tab-pane label="微信公众号通知" name="wechat" style="padding: 10px">
  233. <el-form-item prop="wechat_notice_18" label="查看素材通知模板ID">
  234. <el-input style="width: 500px" placeholder="请输入查看素材通知模板ID" v-model="ruleForm.wechat_notice_18" type="text"></el-input>
  235. </el-form-item>
  236. <el-form-item prop="wechat_notice_6" label="查看名片通知模板ID">
  237. <el-input style="width: 500px" placeholder="请输入查看名片通知模板ID" v-model="ruleForm.wechat_notice_6" type="text"></el-input>
  238. </el-form-item>
  239. <el-form-item prop="wechat_notice_15" label="下单通知模板ID">
  240. <el-input style="width: 500px" placeholder="请输入下单通知模板ID" v-model="ruleForm.wechat_notice_15" type="text"></el-input>
  241. </el-form-item>
  242. <el-form-item prop="wechat_notice_limit_6" label="查看名片通知间隔时间">
  243. <label slot="label">
  244. <span>查看名片通知间隔时间</span>
  245. <el-tooltip effect="dark" content="考虑用户频繁查看你的名片的话这个时候为间隔1小时后在通知一次用户"
  246. placement="top">
  247. <i class="el-icon-info"></i>
  248. </el-tooltip>
  249. </label>
  250. <el-input style="width: 500px" placeholder="请输入查看名片通知间隔时间" v-model="ruleForm.wechat_notice_limit_6" type="text">
  251. <template #append>小时</template>
  252. </el-input>
  253. </el-form-item>
  254. </el-tab-pane>
  255. <el-tab-pane label="样式设置" name="style">
  256. <el-form-item label="浏览名片弹窗">
  257. <label slot="label">浏览名片弹窗
  258. <el-tooltip class="item" effect="dark" content="开启以后用户浏览名片时弹窗不显示" placement="top-start">
  259. <i class="el-icon-info"></i>
  260. </el-tooltip>
  261. </label>
  262. <el-switch v-model="ruleForm.is_show_alert" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  263. </el-form-item>
  264. <el-form-item label="保存到通讯录">
  265. <label slot="label">保存到通讯录
  266. <el-tooltip class="item" effect="dark" content="开启以后可以保存名片电话号码至通讯录" placement="top-start">
  267. <i class="el-icon-info"></i>
  268. </el-tooltip>
  269. </label>
  270. <el-switch v-model="ruleForm.is_enable_save_phone" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  271. </el-form-item>
  272. <el-form-item label="人气靠谱">
  273. <label slot="label">人气靠谱
  274. <el-tooltip class="item" effect="dark" content="开启以后对'人气', '靠谱'做隐藏" placement="top-start">
  275. <i class="el-icon-info"></i>
  276. </el-tooltip>
  277. </label>
  278. <el-switch v-model="ruleForm.is_hidden_popularity" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  279. </el-form-item>
  280. <el-form-item label="商城底部导航">
  281. <label slot="label">商城底部导航
  282. <el-tooltip class="item" effect="dark" content="开启以后浏览名片时显示主商城导航" placement="top-start">
  283. <i class="el-icon-info"></i>
  284. </el-tooltip>
  285. </label>
  286. <el-switch v-model="ruleForm.is_show_mall_nav" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  287. </el-form-item>
  288. <el-form-item label="显示上级名片">
  289. <label slot="label">显示上级名片
  290. <el-tooltip class="item" effect="dark" content="开启以后用户未创建名片时显示上级名片" placement="top-start">
  291. <i class="el-icon-info"></i>
  292. </el-tooltip>
  293. </label>
  294. <el-switch v-model="ruleForm.is_show_parent_card" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  295. </el-form-item>
  296. <el-form-item label="修改部门">
  297. <label slot="label">修改部门
  298. <el-tooltip class="item" effect="dark" content="开启以后用户可以修改所属部门" placement="top-start">
  299. <i class="el-icon-info"></i>
  300. </el-tooltip>
  301. </label>
  302. <el-switch v-model="ruleForm.is_show_update_division" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  303. </el-form-item>
  304. <el-form-item label="修改名片权限">
  305. <el-switch v-model="ruleForm.is_allow_edit_card_info" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  306. <p class="tips-text" style="line-height: 20px; color: red;">
  307. 注意:<br>
  308. 请谨慎使用,若开启后谨慎操作关闭!!<br>
  309. 开启后,所有名片主自己可自定义修改所有的名片内容,不受部门主管和BOSS权限影响;<br>
  310. 若关闭,员工的名片主的个性专栏信息会变回平台的默认配置;
  311. </p>
  312. </el-form-item>
  313. <el-form-item>
  314. <label slot="label">
  315. 查看名片时不强制唤起登录
  316. <el-tooltip class="item" effect="dark" content="开启后用户即使没登录过,也可正常浏览" placement="top-start">
  317. <i class="el-icon-info"></i>
  318. </el-tooltip>
  319. </label>
  320. <el-switch v-model="ruleForm.is_not_forced_login" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  321. </el-form-item>
  322. <el-form-item>
  323. <label slot="label">
  324. 查看名片时是否显示创建名片按钮
  325. <el-tooltip class="item" effect="dark" content="开启后若没创建名片则显示,关闭后不显示" placement="top-start">
  326. <i class="el-icon-info"></i>
  327. </el-tooltip>
  328. </label>
  329. <el-switch v-model="ruleForm.is_show_create_btn" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  330. </el-form-item>
  331. <el-form-item>
  332. <label slot="label">名片预览页公司名称
  333. <el-tooltip class="item" effect="dark" content="配置名片预览页自定义“公司名称”显示的标题" placement="top-start">
  334. <i class="el-icon-info"></i>
  335. </el-tooltip>
  336. </label>
  337. <el-input v-model="ruleForm.company_name_show_label" type="text" maxlength="4" style="width: 250px;" show-word-limit></el-input>
  338. </el-form-item>
  339. <el-form-item>
  340. <label slot="label">名片预览页公司地址
  341. <el-tooltip class="item" effect="dark" content="配置名片预览页自定义“公司地址”显示的标题" placement="top-start">
  342. <i class="el-icon-info"></i>
  343. </el-tooltip>
  344. </label>
  345. <el-input v-model="ruleForm.company_address_show_label" type="text" maxlength="4" style="width: 250px;" show-word-limit></el-input>
  346. </el-form-item>
  347. <el-form-item>
  348. <label slot="label">编辑名片页部门
  349. <el-tooltip class="item" effect="dark" content="配置编辑名片页自定义“部门”显示的标题" placement="top-start">
  350. <i class="el-icon-info"></i>
  351. </el-tooltip>
  352. </label>
  353. <el-input v-model="ruleForm.department_show_label" type="text" maxlength="4" style="width: 250px;" show-word-limit></el-input>
  354. </el-form-item>
  355. <el-form-item>
  356. <label slot="label">编辑名片页公司
  357. <el-tooltip class="item" effect="dark" content="配置编辑名片页自定义“公司”显示的标题" placement="top-start">
  358. <i class="el-icon-info"></i>
  359. </el-tooltip>
  360. </label>
  361. <el-input v-model="ruleForm.company_show_label" type="text" maxlength="4" style="width: 250px;" show-word-limit></el-input>
  362. </el-form-item>
  363. <el-form-item>
  364. <label slot="label">名片预览页添加命令
  365. <el-tooltip class="item" effect="dark" content="配置名片预览页自定义“添加命令”显示的标题" placement="top-start">
  366. <i class="el-icon-info"></i>
  367. </el-tooltip>
  368. </label>
  369. <el-input v-model="ruleForm.add_command_show_title" type="text" maxlength="15" style="width: 250px;" show-word-limit></el-input>
  370. </el-form-item>
  371. </el-tab-pane>
  372. <el-tab-pane label="人脉设置" name="networking">
  373. <h3 style="margin-left:20px;margin-right:20px;padding-bottom:10px;border-bottom:solid 1px #ccc;">基础设置</h3>
  374. <el-form-item label="启用功能">
  375. <el-switch v-model="ruleForm.is_show_networking" :active-value="1" :inactive-value="0"></el-switch>
  376. <p class="tips-text">开启开关后才能启用人脉设置的全部功能</p>
  377. </el-form-item>
  378. <el-form-item label="人脉文字定义">
  379. <el-input style="width: 500px" placeholder="请输入人脉名称" v-model="ruleForm.networking_name" type="text"></el-input>
  380. </el-form-item>
  381. <el-form-item label="顶部轮播图" prop="images">
  382. <div>
  383. <draggable v-model="ruleForm.first_img" v-if="ruleForm.first_img.length" style="display:flex;flex-wrap:wrap;flex-direction:row;">
  384. <div class="card-coverimg" v-for="(item, index) in ruleForm.first_img">
  385. <el-image :preview-src-list="ruleForm.first_img" mode="aspectFill" class="elImages"
  386. style="width: 80px; height: 80px; cursor: move" :src="item"></el-image>
  387. <el-button @click="handle('delFirstImg', index)" class="icon-close" type="danger" size="mini" icon="el-icon-close" circle></el-button>
  388. </div>
  389. </draggable>
  390. <com-attachment v-if="ruleForm.first_img.length < 20" :multiple="true" :max="20" type="images" @selected="handle('firstImg', $event)">
  391. <div class="card-upload">
  392. <i class="el-icon-plus"></i>
  393. </div>
  394. </com-attachment>
  395. </div>
  396. <p class="tips-text">未添加图片则前端隐藏该板块,前端轮播顺序同图片的添加顺序,最多可添加20张图片,建议尺寸:700*330</p>
  397. </el-form-item>
  398. <el-form-item label="公告">
  399. <el-input style="width: 500px" placeholder="请输入公告" v-model="ruleForm.networking_notice" type="textarea" :rows="4" maxlength="120"
  400. show-word-limit></el-input>
  401. </el-form-item>
  402. <el-form-item label="脉友达人名称">
  403. <el-input style="width: 500px" placeholder="请输入脉友达人名称" v-model="ruleForm.expert_name" type="text"></el-input>
  404. </el-form-item>
  405. <el-form-item>
  406. <label slot="label">显示的会员等级
  407. <el-tooltip class="item" effect="dark" content="被选中的会员等级会随机抽取三名会员在麦友达人板块进行显示" placement="top-start">
  408. <i class="el-icon-info"></i>
  409. </el-tooltip>
  410. </label>
  411. <el-select v-model="ruleForm.level" multiple placeholder="请选择">
  412. <el-option
  413. v-for="item in levels"
  414. :key="item.level"
  415. :label="item.name"
  416. :value="item.level">
  417. </el-option>
  418. </el-select>
  419. </el-form-item>
  420. <el-form-item label="二级轮播图" prop="images">
  421. <div>
  422. <draggable v-model="ruleForm.second_img" v-if="ruleForm.second_img.length" style="display:flex;flex-wrap:wrap;flex-direction:row;">
  423. <div class="card-coverimg" v-for="(item, index) in ruleForm.second_img">
  424. <el-image :preview-src-list="ruleForm.second_img" mode="aspectFill" class="elImages"
  425. style="width: 80px; height: 80px; cursor: move" :src="item"></el-image>
  426. <el-button @click="handle('delSecondImg', index)" class="icon-close" type="danger" size="mini" icon="el-icon-close" circle></el-button>
  427. </div>
  428. </draggable>
  429. <com-attachment v-if="ruleForm.second_img.length < 20" :multiple="true" :max="20" type="images" @selected="handle('secondImg', $event)">
  430. <div class="card-upload">
  431. <i class="el-icon-plus"></i>
  432. </div>
  433. </com-attachment>
  434. </div>
  435. <p class="tips-text">未添加图片则前端隐藏该板块,前端轮播顺序同图片的添加顺序,最多可添加20张图片,建议尺寸:700*330</p>
  436. </el-form-item>
  437. <el-form-item label="人脉广场名称">
  438. <el-input style="width: 500px" placeholder="请输入人脉广场名称" v-model="ruleForm.square_name" type="text"></el-input>
  439. </el-form-item>
  440. <h3 style="margin-left:20px;margin-right:20px;padding-bottom:10px;border-bottom:solid 1px #ccc;">信息收集</h3>
  441. <el-form-item label="微信二维码收集开关">
  442. <el-switch v-model="ruleForm.collect_wechat" :active-value="1" :inactive-value="0"></el-switch>
  443. <!-- <p class="tips-text">开启开关后才能启用人脉设置的全部功能</p> -->
  444. </el-form-item>
  445. <el-form-item label="我提供的人脉资源">
  446. <el-tag
  447. :key="index"
  448. v-for="(tag, index) in ruleForm.supply_resources"
  449. closable
  450. :disable-transitions="false"
  451. @close="handleClose(1, index)">
  452. <el-input v-model='tag.name' type='text' size='small' style="width:100px;"></el-input>
  453. </el-tag>
  454. <el-input
  455. class="input-new-tag"
  456. v-if="inputSupply"
  457. v-model="inputValue"
  458. ref="saveSupplyInput"
  459. size="small"
  460. @keyup.enter.native="handleInputConfirm(1)"
  461. @blur="handleInputConfirm(1)"
  462. >
  463. </el-input>
  464. <el-button v-else class="button-new-tag" size="small" @click="showInput(1)" type><i class="el-icon-plus"></i></el-button>
  465. <p class="tips-text">已关联过用户的标签不允许删除</p>
  466. </el-form-item>
  467. <el-form-item label="我需要的人脉资源">
  468. <el-tag
  469. :key="index"
  470. v-for="(tag, index) in ruleForm.need_resources"
  471. closable
  472. :disable-transitions="false"
  473. @close="handleClose(2, index)">
  474. <el-input v-model='tag.name' type='text' size='small' style="width:100px;"></el-input>
  475. </el-tag>
  476. <el-input
  477. class="input-new-tag"
  478. v-if="inputNeed"
  479. v-model="inputValue"
  480. ref="saveNeedInput"
  481. size="small"
  482. @keyup.enter.native="handleInputConfirm(2)"
  483. @blur="handleInputConfirm(2)"
  484. >
  485. </el-input>
  486. <el-button v-else class="button-new-tag" size="small" @click="showInput(2)" type><i class="el-icon-plus"></i></el-button>
  487. <p class="tips-text">已关联过用户的标签不允许删除</p>
  488. </el-form-item>
  489. <el-form-item label="最高学历">
  490. <el-tag
  491. :key="index"
  492. v-for="(tag, index) in ruleForm.education"
  493. closable
  494. :disable-transitions="false"
  495. @close="handleClose(3, index)">
  496. <el-input v-model='tag.name' type='text' size='small' style="width:100px;"></el-input>
  497. </el-tag>
  498. <el-input
  499. class="input-new-tag"
  500. v-if="inputEducation"
  501. v-model="inputValue"
  502. ref="saveEducationInput"
  503. size="small"
  504. @keyup.enter.native="handleInputConfirm(3)"
  505. @blur="handleInputConfirm(3)"
  506. >
  507. </el-input>
  508. <el-button v-else class="button-new-tag" size="small" @click="showInput(3)" type><i class="el-icon-plus"></i></el-button>
  509. <p class="tips-text">已关联过用户的标签不允许删除</p>
  510. </el-form-item>
  511. <el-form-item label="是否开启附加信息收集">
  512. <el-switch v-model="ruleForm.collect_info" :active-value="1" :inactive-value="0"></el-switch>
  513. <p class="tips-text">开启开关则智能拓客-名片编辑页面新增性别、活跃城市、婚姻状态、生肖、从事过的行业、身份标签填写项目</p>
  514. </el-form-item>
  515. <el-form-item label="填写状态">
  516. <el-radio-group v-model="ruleForm.is_required">
  517. <el-radio :label="1">必填</el-radio>
  518. <el-radio :label="0">非必填</el-radio>
  519. </el-radio-group>
  520. <p class="tips-text">开启开关则智能拓客-名片编辑页面新增性别、活跃城市、婚姻状态、生肖、从事过的行业、身份标签填写项目</p>
  521. </el-form-item>
  522. <el-form-item label="从事过的行业">
  523. <el-tag
  524. :key="index"
  525. v-for="(tag, index) in ruleForm.industry"
  526. closable
  527. :disable-transitions="false"
  528. @close="handleClose(4, index)">
  529. <el-input v-model='tag.name' type='text' size='small' style="width:100px;"></el-input>
  530. </el-tag>
  531. <el-input
  532. class="input-new-tag"
  533. v-if="inputIndustry"
  534. v-model="inputValue"
  535. ref="saveIndustryInput"
  536. size="small"
  537. @keyup.enter.native="handleInputConfirm(4)"
  538. @blur="handleInputConfirm(4)"
  539. >
  540. </el-input>
  541. <el-button v-else class="button-new-tag" size="small" @click="showInput(4)" type><i class="el-icon-plus"></i></el-button>
  542. <p class="tips-text">已关联过用户的标签不允许删除</p>
  543. </el-form-item>
  544. <el-form-item label="身份标签">
  545. <el-tag
  546. :key="index"
  547. v-for="(tag, index) in ruleForm.identity_tags"
  548. closable
  549. :disable-transitions="false"
  550. @close="handleClose(5, index)">
  551. <el-input v-model='tag.name' type='text' size='small' style="width:100px;"></el-input>
  552. </el-tag>
  553. <el-input
  554. class="input-new-tag"
  555. v-if="inputIdentity"
  556. v-model="inputValue"
  557. ref="saveIdentityInput"
  558. size="small"
  559. @keyup.enter.native="handleInputConfirm(5)"
  560. @blur="handleInputConfirm(5)"
  561. >
  562. </el-input>
  563. <el-button v-else class="button-new-tag" size="small" @click="showInput(5)" type><i class="el-icon-plus"></i></el-button>
  564. <p class="tips-text">已关联过用户的标签不允许删除</p>
  565. </el-form-item>
  566. </el-tab-pane>
  567. </el-tabs>
  568. </el-card>
  569. </el-form>
  570. </el-card>
  571. <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;"
  572. @click="send('add')" size="small">保存
  573. </el-button>
  574. </div>
  575. <script src="/resources/js/Sortable.min.js"></script>
  576. <script src="/resources/unpkg/vuedraggable@2.18.1/dist/vuedraggable.umd.min.js"></script>
  577. <script>
  578. const app = new Vue({
  579. el: '#app',
  580. data() {
  581. return {
  582. loading: false,
  583. btnLoading: false,
  584. goods_list:[],
  585. ruleForm: {
  586. company: '',
  587. address: '',
  588. share_title: '',
  589. share_desc: '',
  590. logo: '',
  591. is_card_token: '0',
  592. card_token: '',
  593. images: [],
  594. goods_list: [],
  595. list_card_show: [],
  596. style: 0,
  597. video_url: '',
  598. video_cover_pic: '',
  599. wechat_notice_18: '', // 查看素材
  600. wechat_notice_6: '', // 查看名片
  601. wechat_notice_limit_6: 0, // 查看名片 限制
  602. wechat_notice_15: '', // 下单
  603. share_pic: '',
  604. is_show_alert: 0,
  605. is_enable_save_phone: 0,
  606. is_hidden_popularity: 0,
  607. is_show_mall_nav: 0,
  608. is_show_parent_card: 0,
  609. lng: '',
  610. lat: '',
  611. company_name_show_label: '',
  612. company_address_show_label: '',
  613. department_show_label: '',
  614. company_show_label: '',
  615. add_command_show_title: '',
  616. is_allow_edit_card_info: 0,
  617. is_not_forced_login: 0,
  618. is_show_create_btn: 0,
  619. is_show_networking:0,//是否启用人脉功能
  620. collect_wechat:0, //收集微信二维码
  621. collect_info: 0,//附加信息收集
  622. is_required: 0, //是否必填
  623. networking_name: '人脉',
  624. expert_name: '脉友达人',
  625. square_name: '人脉广场',
  626. networking_notice: '',//公告
  627. first_img: [],
  628. second_img:[],
  629. level: [],
  630. supply_resources: [], //能提供的人脉资源
  631. need_resources : [], //需要的人脉资源
  632. education: [], //学历
  633. industry: [], //从事行业
  634. identity_tags: [], //身份标签
  635. sign: '',//个人简介
  636. },
  637. inputSupply: false,
  638. inputNeed: false,
  639. inputEducation: false,
  640. inputIndustry: false,
  641. inputIdentity: false,
  642. inputValue: '',
  643. levels: [],
  644. long_lat: '',
  645. diy_img_prefix: '<?= Yii::getAlias('@attachurl') ?>',
  646. activeName: 'basic',
  647. }
  648. },
  649. mounted() {
  650. this.send('getData');
  651. },
  652. methods: {
  653. clickHandler() {
  654. alert(1)
  655. },
  656. handleClick(tab, event) {
  657. },
  658. send(type, param1 = null, param2 = null) {
  659. switch(type) {
  660. case 'getData':
  661. this.loading = true;
  662. request({
  663. params: {r: 'business-card/setting/index'},
  664. }).then(e=>{
  665. if (e.data.code == 0) {
  666. this.ruleForm = Object.assign(this.ruleForm, e.data.data)
  667. console.log(this.ruleForm);
  668. if (this.ruleForm.lat) this.long_lat = `${this.ruleForm.lat}-${this.ruleForm.lng}`
  669. this.levels = e.data.data.levels;
  670. if(!this.ruleForm.goods_list){
  671. this.ruleForm.goods_list = [];
  672. }else{
  673. this.goods_list = this.ruleForm.goods_list;
  674. }
  675. } else {
  676. this.$message.error(e.data.msg);
  677. }
  678. this.loading = false;
  679. }).catch(e=>{
  680. this.loading = false;
  681. this.$message.error(e.data.msg);
  682. })
  683. break;
  684. case 'add':
  685. this.btnLoading = true
  686. this.ruleForm.goods_list =this.goods_list;
  687. if (this.ruleForm.is_card_token == '1') {
  688. if (this.ruleForm.card_token === undefined || this.ruleForm.card_token === null || this.ruleForm.card_token == '') {
  689. this.btnLoading = false;
  690. this.$message.error('名片密令不能为空');
  691. return false;
  692. }
  693. }
  694. request({
  695. params: {r: 'business-card/setting/index'},
  696. data: this.ruleForm,
  697. method: 'post'
  698. }).then(e=>{
  699. if(e.data.code == 0) {
  700. this.send('getData');
  701. this.$message.success(e.data.msg);
  702. } else {
  703. this.$message.error(e.data.msg);
  704. }
  705. this.btnLoading = false;
  706. }).catch(e=>{
  707. this.btnLoading = false,
  708. this.$message.error(e.data.msg);
  709. })
  710. break;
  711. }
  712. },
  713. handle(type, param1 = null, param2 = null) {
  714. switch(type) {
  715. //上传图片
  716. case 'picUrl':
  717. if (param1) {
  718. let self = this;
  719. param1.forEach(function(item, index){
  720. if (!self.ruleForm.images || self.ruleForm.images.length >= 9) {
  721. return;
  722. }
  723. self.ruleForm.images.push(item.url)
  724. })
  725. }
  726. break;
  727. //删除图片
  728. case 'delPic':
  729. this.ruleForm.images.splice(param1, 1)
  730. break;
  731. case 'deleteGoods':
  732. this.goods_list.splice(param1,1);
  733. break
  734. case 'firstImg':
  735. if (param1) {
  736. let self = this;
  737. param1.forEach(function(item, index){
  738. if (!self.ruleForm.first_img || self.ruleForm.first_img.length >= 20) {
  739. return;
  740. }
  741. self.ruleForm.first_img.push(item.url)
  742. })
  743. }
  744. break;
  745. case 'delFirstImg':
  746. this.ruleForm.first_img.splice(param1, 1)
  747. break;
  748. case 'secondImg':
  749. if (param1) {
  750. let self = this;
  751. param1.forEach(function(item, index){
  752. if (!self.ruleForm.second_img || self.ruleForm.second_img.length >= 20) {
  753. return;
  754. }
  755. self.ruleForm.second_img.push(item.url)
  756. })
  757. }
  758. break;
  759. case 'delSecondImg':
  760. this.ruleForm.second_img.splice(param1, 1)
  761. break;
  762. }
  763. },
  764. updatePicUrl(e, params) {
  765. console.log(e);
  766. },
  767. goodsSelect(param) {
  768. for (let i = 0; i < param.length; i++) {
  769. if (i > 14) {
  770. break;
  771. }
  772. this.goods_list.push(JSON.parse(JSON.stringify({
  773. goods_name: param[i]['goods_name'], goods_id: param[i]['id'], cover_pic: param[i]['cover_pic'], price: param[i]['price']
  774. })));
  775. }
  776. },
  777. videoUrl(e) {
  778. if (e.length > 0) {
  779. this.$set(this.ruleForm, 'video_url', e[0].url)
  780. this.$set(this.ruleForm, 'video_cover_pic', e[0].thumb_url)
  781. }
  782. },
  783. videoCoverPic(e) { // 选择图片
  784. this.ruleForm.video_cover_pic = e[0].url
  785. },
  786. sharePic(e) { // 选择图片
  787. this.$set(this.ruleForm, 'share_pic', e[0].url)
  788. },
  789. onChangeStyle(index) {
  790. this.$set(this.ruleForm, 'style', index)
  791. },
  792. mapEvent(e) {
  793. this.ruleForm.lng = e.long;
  794. this.ruleForm.lat = e.lat;
  795. this.ruleForm.address = e.address;
  796. this.long_lat = e.lat + '-' + e.long;
  797. this.$forceUpdate();
  798. this.clearValidate('ruleForm');
  799. },
  800. handleClose(type, index) {
  801. switch (type) {
  802. case 1:
  803. if (!this.ruleForm.supply_resources[index].id) {
  804. this.ruleForm.supply_resources.splice(index, 1);
  805. } else {
  806. this.$confirm('此操作将永久删除该标签, 是否继续?', '提示', {
  807. confirmButtonText: '确定',
  808. cancelButtonText: '取消',
  809. type: 'warning'
  810. }).then(() => {
  811. this.delTag(this.ruleForm.supply_resources[index].id, 1, index);
  812. }).catch(() => {
  813. this.$message({
  814. type: 'info',
  815. message: '已取消操作'
  816. });
  817. });
  818. }
  819. break;
  820. case 2:
  821. if (!this.ruleForm.need_resources[index].id) {
  822. this.ruleForm.need_resources.splice(index, 1);
  823. } else {
  824. this.$confirm('此操作将永久删除该标签, 是否继续?', '提示', {
  825. confirmButtonText: '确定',
  826. cancelButtonText: '取消',
  827. type: 'warning'
  828. }).then(() => {
  829. this.delTag(this.ruleForm.need_resources[index].id, 2, index);
  830. }).catch(() => {
  831. this.$message({
  832. type: 'info',
  833. message: '已取消操作'
  834. });
  835. });
  836. }
  837. break;
  838. case 3:
  839. if (!this.ruleForm.education[index].id) {
  840. this.ruleForm.education.splice(index, 1);
  841. } else {
  842. this.$confirm('此操作将永久删除该标签, 是否继续?', '提示', {
  843. confirmButtonText: '确定',
  844. cancelButtonText: '取消',
  845. type: 'warning'
  846. }).then(() => {
  847. this.delTag(this.ruleForm.education[index].id, 3, index);
  848. }).catch(() => {
  849. this.$message({
  850. type: 'info',
  851. message: '已取消操作'
  852. });
  853. });
  854. }
  855. break;
  856. case 4:
  857. if (!this.ruleForm.industry[index].id) {
  858. this.ruleForm.industry.splice(index, 1);
  859. } else {
  860. this.$confirm('此操作将永久删除该标签, 是否继续?', '提示', {
  861. confirmButtonText: '确定',
  862. cancelButtonText: '取消',
  863. type: 'warning'
  864. }).then(() => {
  865. this.delTag(this.ruleForm.industry[index].id, 4, index);
  866. }).catch(() => {
  867. this.$message({
  868. type: 'info',
  869. message: '已取消操作'
  870. });
  871. });
  872. }
  873. break;
  874. case 5:
  875. if (!this.ruleForm.identity_tags[index].id) {
  876. this.ruleForm.identity_tags.splice(index, 1);
  877. } else {
  878. this.$confirm('此操作将永久删除该标签, 是否继续?', '提示', {
  879. confirmButtonText: '确定',
  880. cancelButtonText: '取消',
  881. type: 'warning'
  882. }).then(() => {
  883. this.delTag(this.ruleForm.identity_tags[index].id, 5, index);
  884. }).catch(() => {
  885. this.$message({
  886. type: 'info',
  887. message: '已取消操作'
  888. });
  889. });
  890. }
  891. break;
  892. }
  893. // this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
  894. },
  895. showInput(type) {
  896. switch (type) {
  897. case 1:
  898. this.inputSupply = true;
  899. this.$nextTick(_ => {
  900. this.$refs.saveSupplyInput.$refs.input.focus();
  901. });
  902. break;
  903. case 2:
  904. this.inputNeed = true;
  905. this.$nextTick(_ => {
  906. this.$refs.saveNeedInput.$refs.input.focus();
  907. });
  908. break;
  909. case 3:
  910. this.inputEducation = true;
  911. this.$nextTick(_ => {
  912. this.$refs.saveEducationInput.$refs.input.focus();
  913. });
  914. break;
  915. case 4:
  916. this.inputIndustry = true;
  917. this.$nextTick(_ => {
  918. this.$refs.saveIndustryInput.$refs.input.focus();
  919. });
  920. break;
  921. case 5:
  922. this.inputIdentity = true;
  923. this.$nextTick(_ => {
  924. this.$refs.saveIdentityInput.$refs.input.focus();
  925. });
  926. break;
  927. }
  928. },
  929. handleInputConfirm(type) {
  930. let inputValue = this.inputValue;
  931. switch (type) {
  932. case 1:
  933. if (inputValue) {
  934. this.ruleForm.supply_resources.push({"name" : inputValue, "type": 1, "status": 1});
  935. }
  936. this.inputSupply = false;
  937. break;
  938. case 2:
  939. if (inputValue) {
  940. this.ruleForm.need_resources.push({"name" : inputValue, "type": 2, "status": 1});
  941. }
  942. this.inputNeed = false;
  943. break;
  944. case 3:
  945. if (inputValue) {
  946. this.ruleForm.education.push({"name" : inputValue, "type": 3, "status": 1});
  947. }
  948. this.inputEducation = false;
  949. break;
  950. case 4:
  951. if (inputValue) {
  952. this.ruleForm.industry.push({"name" : inputValue, "type": 4, "status": 1});
  953. }
  954. this.inputIndustry = false;
  955. break;
  956. case 5:
  957. if (inputValue) {
  958. this.ruleForm.identity_tags.push({"name" : inputValue, "type": 5, "status": 1});
  959. }
  960. this.inputIdentity = false;
  961. break;
  962. }
  963. this.inputValue = '';
  964. },
  965. delTag(id, type, index) {
  966. request({
  967. params: {r: 'business-card/setting/del-tag'},
  968. data: {
  969. id: id,
  970. type: type,
  971. },
  972. method: 'post'
  973. }).then(e=>{
  974. if(e.data.code == 0) {
  975. switch (type) {
  976. case 1:
  977. this.ruleForm.supply_resources.splice(index, 1);
  978. break;
  979. case 2:
  980. this.ruleForm.need_resources.splice(index, 1);
  981. break;
  982. case 3:
  983. this.ruleForm.education.splice(index, 1);
  984. break;
  985. case 4:
  986. this.ruleForm.industry.splice(index, 1);
  987. break;
  988. case 5:
  989. this.ruleForm.identity_tags.splice(index, 1);
  990. break;
  991. }
  992. this.$message.success(e.data.msg);
  993. } else {
  994. this.$message.error(e.data.msg);
  995. }
  996. this.btnLoading = false;
  997. }).catch(e=>{
  998. this.btnLoading = false,
  999. this.$message.error(e.data.msg);
  1000. })
  1001. }
  1002. }
  1003. })
  1004. </script>
  1005. <style>
  1006. .form_box {
  1007. background-color: #f3f3f3;
  1008. padding: 0 0 20px;
  1009. }
  1010. .button-item {
  1011. margin-top: 12px;
  1012. padding: 9px 25px;
  1013. }
  1014. .customize-share-title {
  1015. margin-top: 10px;
  1016. width: 80px;
  1017. height: 80px;
  1018. position: relative;
  1019. cursor: move;
  1020. }
  1021. .del-btn {
  1022. position: absolute;
  1023. right: -8px;
  1024. top: -8px;
  1025. padding: 4px 4px;
  1026. }
  1027. .el-input-group__append {
  1028. background-color: #fff;
  1029. color: #353535;
  1030. }
  1031. .add-image-btn {
  1032. width: 100px;
  1033. height: 100px;
  1034. color: #419EFB;
  1035. border: 1px solid #e2e2e2;
  1036. cursor: pointer;
  1037. }
  1038. .selected-style {
  1039. border: solid 2px #67C23A;
  1040. position: relative;
  1041. }
  1042. .icon-check {
  1043. position: absolute;
  1044. bottom: -10px;
  1045. right: 0px;
  1046. z-index: 999;
  1047. }
  1048. .el-tag {
  1049. height: auto;
  1050. padding-top:5px;
  1051. padding-bottom: 5px;
  1052. }
  1053. .el-tag + .el-tag {
  1054. margin-left: 10px;
  1055. }
  1056. .button-new-tag {
  1057. margin-left: 10px;
  1058. height: 32px;
  1059. line-height: 30px;
  1060. padding-top: 0;
  1061. padding-bottom: 0;
  1062. }
  1063. .input-new-tag {
  1064. width: 90px;
  1065. margin-left: 10px;
  1066. vertical-align: bottom;
  1067. }
  1068. </style>