CreateForm.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. <template>
  2. <div>
  3. <a-drawer
  4. :title="title"
  5. placement="right"
  6. :closable="true"
  7. @close="onClose"
  8. :visible="drawerVisible"
  9. :width="950">
  10. <a-form @submit="handleSubmit" :form="form" class="form">
  11. <a-row class="form-row" :gutter="16">
  12. <a-col :lg="24" :md="12" :sm="24">
  13. <a-form-item label="finderUin">
  14. <a-input
  15. placeholder="请输入作者 finderUin"
  16. v-decorator="['finderUin', { rules: [{ required: true, message: '请输入作者 finderUin', whitespace: true }] }]"
  17. />
  18. </a-form-item>
  19. </a-col>
  20. </a-row>
  21. <a-row class="form-row" :gutter="16">
  22. <a-col :lg="8" :md="12" :sm="24">
  23. <a-form-item label="来源渠道">
  24. <a-select size="default" style="width: 200px" v-decorator="['fromChannelName',{ rules: [{ required: true, message: '请选择来源渠道', whitespace: true }] }]" @change="handleSelectChange">
  25. <a-select-option v-for="item in fromChannelNameList" :key="String(item.name)" :value="String(item.name)">
  26. {{ item.name }}
  27. </a-select-option>
  28. </a-select>
  29. </a-form-item>
  30. </a-col>
  31. <a-col :lg="8" :md="12" :sm="24">
  32. <a-form-item label="作者是否有站外账号">
  33. <a-select size="default" style="width: 200px" v-decorator="['outSideAccountFlag']">
  34. <a-select-option value="1">是</a-select-option>
  35. <a-select-option value="0">否</a-select-option>
  36. </a-select>
  37. </a-form-item>
  38. </a-col>
  39. <a-col :lg="8" :md="12" :sm="24">
  40. <a-form-item label="作者等级">
  41. <a-select size="default" style="width: 200px" v-decorator="['level',{ rules: [{ required: true, message: '请选择作者等级', whitespace: true }] }]">
  42. <a-select-option v-for="item in authorLevelList" :key="String(item.name)" :value="String(item.name)">
  43. {{ item.name }}
  44. </a-select-option>
  45. </a-select>
  46. </a-form-item>
  47. </a-col>
  48. </a-row>
  49. <a-row class="form-row" :gutter="16">
  50. <a-col :lg="24" :md="12" :sm="24">
  51. <a-form-item label="微信号">
  52. <a-input
  53. placeholder="请输入作者微信号"
  54. v-decorator="['weChatAccount', { rules: [{ required: true, message: '请输入作者微信号', whitespace: true }] }]"
  55. />
  56. </a-form-item>
  57. </a-col>
  58. </a-row>
  59. <a-row class="form-row" :gutter="16">
  60. <a-col :lg="24" :md="12" :sm="24">
  61. <a-form-item label="视频号账户名">
  62. <a-input
  63. placeholder="已入驻作者需填写"
  64. v-decorator="['videoAccount', { rules: [{ required: false, message: '请输入作者视频号账户名', whitespace: true }] }]"
  65. />
  66. </a-form-item>
  67. </a-col>
  68. </a-row>
  69. <a-row class="form-row" :gutter="16">
  70. <a-col :lg="8" :md="12" :sm="24">
  71. <a-form-item label="作者分类">
  72. <a-cascader :options="categoryNameList" placeholder="请选择作者分类" @change="onChange" v-decorator="['categoryName',{ rules: [{ required: true }] }]" />
  73. </a-form-item>
  74. </a-col>
  75. <a-col :lg="8" :md="12" :sm="24">
  76. <a-form-item label="拟定认证信息">
  77. <a-cascader :options="authInfoList" placeholder="请选择拟定认证信息" @change="onChange" v-decorator="['authInfo',{ rules: [{ required: true }] }]" />
  78. </a-form-item>
  79. </a-col>
  80. <a-col :lg="8" :md="12" :sm="24">
  81. <a-form-item label="是否本地作者">
  82. <a-radio-group v-decorator="['isLocal', { initialValue: 1 }]">
  83. <a-radio :value="1">是</a-radio>
  84. <a-radio :value="0">否</a-radio>
  85. </a-radio-group>
  86. </a-form-item>
  87. </a-col>
  88. </a-row>
  89. <a-row class="form-row" :gutter="16">
  90. <a-col :lg="24" :md="12" :sm="24">
  91. <a-form-item label="影响力描述">
  92. <a-input
  93. placeholder="作者影响力证明,用于认证申请或流量包申请审核"
  94. v-decorator="['prove', { rules: [{ required: true, message: '请输入作者影响力描述', whitespace: true }] }]"
  95. />
  96. </a-form-item>
  97. </a-col>
  98. </a-row>
  99. <a-row class="form-row" :gutter="16">
  100. <a-col :lg="8" :md="12" :sm="24">
  101. <a-form-item label="是否下发流量">
  102. <a-radio-group v-model="isSend" v-decorator="['isSend', {initialValue:0, rules: [{ required: true}] }]">
  103. <a-radio :value="1">是</a-radio>
  104. <a-radio :value="0">否</a-radio>
  105. </a-radio-group>
  106. </a-form-item>
  107. </a-col>
  108. <a-col :lg="8" :md="12" :sm="24" v-show="isSend">
  109. <a-form-item label="下发流量包限额">
  110. <a-select size="default" style="width: 200px" v-decorator="['sendCount',{ rules: [{ required: false}] }]">
  111. <a-select-option v-for="item in sendCountList" :key="String(item.count)" :value="String(item.count)">
  112. {{ item.name }}
  113. </a-select-option>
  114. </a-select>
  115. </a-form-item>
  116. </a-col>
  117. <a-col :lg="8" :md="12" :sm="24" v-show="isSend">
  118. <a-form-item label="发放原因">
  119. <a-radio-group
  120. v-decorator="['sendReason', {initialValue:1, rules: [{ required: false}] }]">
  121. <a-radio :value="1">新入驻作者</a-radio>
  122. <a-radio :value="0">作者首条发文</a-radio>
  123. </a-radio-group>
  124. </a-form-item>
  125. </a-col>
  126. </a-row>
  127. <div
  128. :style="{
  129. position: 'absolute',
  130. left: 0,
  131. bottom: 0,
  132. width: '100%',
  133. borderTop: '1px solid #e9e9e9',
  134. padding: '10px 16px',
  135. background: '#fff',
  136. textAlign: 'right',
  137. zIndex: '10'
  138. }"
  139. >
  140. <a-button :style="{marginRight: '8px'}" @click="onClose">
  141. 取消
  142. </a-button>
  143. <a-button type="primary" @click="handleSubmit">
  144. 提交
  145. </a-button>
  146. </div>
  147. </a-form>
  148. </a-drawer>
  149. </div>
  150. </template>
  151. <script>
  152. import { saveAuthor,fetchAuthor } from '@/api/author'
  153. export default {
  154. name: 'CreateAuthorForm',
  155. components: {
  156. },
  157. props: {
  158. formType: {
  159. type: String,
  160. default: 'create'
  161. },
  162. visible: {
  163. type: Boolean
  164. }
  165. },
  166. data () {
  167. return {
  168. title: '新增作者',
  169. isSend: 0,
  170. id: null,
  171. drawerVisible: false,
  172. form: this.$form.createForm(this, { name: 'create_author' }),
  173. // 下放流量信息
  174. sendCountList: [
  175. { 'count': 50000, name: '50000点流量券/人' },
  176. { 'count': 5000, name: '5000点流量券/人' },
  177. { 'count': 2500, name: '2500点流量券/人' },
  178. { 'count': 500, name: '500点流量券/人' }
  179. ],
  180. // 作者等级信息
  181. authorLevelList: [
  182. { 'id': 1, name: '顶流作者' },
  183. { 'id': 2, name: '头部作者' },
  184. { 'id': 3, name: '腰部作者' },
  185. { 'id': 4, name: '尾部作者' }
  186. ],
  187. // 来源渠道信息
  188. fromChannelNameList: [
  189. { 'id': 1, name: '市场部-垂类' },
  190. { 'id': 2, name: '市场部-城市' },
  191. { 'id': 3, name: '市场部-社区' },
  192. { 'id': 4, name: '市场部-学生' },
  193. { 'id': 5, name: '市场部-海外' },
  194. { 'id': 6, name: '公关中心' },
  195. { 'id': 7, name: 'IEG项目组' },
  196. { 'id': 8, name: 'TME' },
  197. { 'id': 9, name: '基础合作' },
  198. { 'id': 10, name: '其他' }
  199. ],
  200. // 作者认证分类信息
  201. authInfoList: [
  202. {
  203. value: '兴趣认证',
  204. label: '兴趣认证',
  205. children: [
  206. {
  207. value: '主播',
  208. label: '主播',
  209. children: [
  210. { value: '体育主播', label: '体育主播' },
  211. { value: '动漫主播', label: '动漫主播' },
  212. { value: '美食主播', label: '美食主播' },
  213. { value: '游戏主播', label: '游戏主播' },
  214. { value: '音乐主播', label: '音乐主播' },
  215. { value: '娱乐主播', label: '娱乐主播' }
  216. ]
  217. },
  218. {
  219. value: '自媒体',
  220. label: '自媒体',
  221. children: [
  222. { value: '美妆自媒体', label: '美妆自媒体' },
  223. { value: '教育自媒体', label: '教育自媒体' },
  224. { value: '房产自媒体', label: '房产自媒体' },
  225. { value: '汽车自媒体', label: '汽车自媒体' },
  226. { value: '科普自媒体', label: '科普自媒体' },
  227. { value: '游戏自媒体', label: '游戏自媒体' },
  228. { value: '三农自媒体', label: '三农自媒体' },
  229. { value: '航空自媒体', label: '航空自媒体' },
  230. { value: '法律自媒体', label: '法律自媒体' },
  231. { value: '设计美学自媒体', label: '设计美学自媒体' },
  232. { value: '军事自媒体', label: '军事自媒体' },
  233. { value: '音乐自媒体', label: '音乐自媒体' },
  234. { value: '运动自媒体', label: '运动自媒体' },
  235. { value: '舞蹈自媒体', label: '舞蹈自媒体' },
  236. { value: '文学自媒体', label: '文学自媒体' },
  237. { value: '宠物自媒体', label: '宠物自媒体' },
  238. { value: '互联网自媒体', label: '互联网自媒体' },
  239. { value: '生活自媒体', label: '生活自媒体' },
  240. { value: '户外自媒体', label: '户外自媒体' },
  241. { value: '艺术自媒体', label: '艺术自媒体' },
  242. { value: '动漫自媒体', label: '动漫自媒体' }
  243. ]
  244. },
  245. {
  246. value: '博主',
  247. label: '博主',
  248. children: [
  249. { value: '美妆博主', label: '美妆博主' },
  250. { value: '教育博主', label: '教育博主' },
  251. { value: '房产博主', label: '房产博主' },
  252. { value: '汽车博主', label: '汽车博主' },
  253. { value: '科普博主', label: '科普博主' },
  254. { value: '游戏博主', label: '游戏博主' },
  255. { value: '三农博主', label: '三农博主' },
  256. { value: '航空博主', label: '航空博主' },
  257. { value: '法律博主', label: '法律博主' },
  258. { value: '设计美学博主', label: '设计美学博主' },
  259. { value: '军事博主', label: '军事博主' },
  260. { value: '运动博主', label: '运动博主' },
  261. { value: '舞蹈博主', label: '舞蹈博主' },
  262. { value: '文学博主', label: '文学博主' },
  263. { value: '宠物博主', label: '宠物博主' },
  264. { value: '音乐博主', label: '音乐博主' },
  265. { value: '互联网博主', label: '互联网博主' },
  266. { value: '生活博主', label: '生活博主' },
  267. { value: '户外博主', label: '户外博主' },
  268. { value: '艺术博主', label: '艺术博主' },
  269. { value: '动漫博主', label: '动漫博主' }
  270. ]
  271. }
  272. ]
  273. },
  274. {
  275. value: '职业认证',
  276. label: '职业认证',
  277. children: [
  278. {
  279. value: '建筑工程',
  280. label: '建筑工程',
  281. children: [
  282. { value: '建造造价', label: '建造造价' },
  283. { value: '设计勘察', label: '设计勘察' }
  284. ]
  285. },
  286. {
  287. value: '游戏动漫',
  288. label: '游戏动漫',
  289. children: [
  290. { value: '电子竞技', label: '电子竞技' },
  291. { value: '动漫绘画', label: '动漫绘画' }
  292. ]
  293. },
  294. {
  295. value: '科学科普',
  296. label: '科学科普',
  297. children: [
  298. { value: '地理', label: '地理' },
  299. { value: '化学', label: '化学' },
  300. { value: '数学', label: '数学' },
  301. { value: '气候', label: '气候' },
  302. { value: '物理', label: '物理' },
  303. { value: '天文', label: '天文' },
  304. { value: '生物', label: '生物' },
  305. { value: '其他', label: '其他' }
  306. ]
  307. },
  308. {
  309. value: 'IT通信',
  310. label: 'IT通信',
  311. children: [
  312. { value: '产品', label: '产品' },
  313. { value: '架构', label: '架构' },
  314. { value: '软件', label: '软件' },
  315. { value: '硬件', label: '硬件' },
  316. { value: '设计', label: '设计' }
  317. ]
  318. },
  319. {
  320. value: '财经',
  321. label: '财经',
  322. children: [
  323. { value: '财经', label: '财经' },
  324. { value: '会计', label: '会计' },
  325. { value: '保险', label: '保险' },
  326. { value: '金融', label: '金融' },
  327. { value: '经济', label: '经济' }
  328. ]
  329. },
  330. {
  331. value: '教育',
  332. label: '教育',
  333. children: [
  334. { value: '校长', label: '校长' },
  335. { value: '院士', label: '院士' },
  336. { value: '教授', label: '教授' },
  337. { value: '教师', label: '教师' }
  338. ]
  339. },
  340. {
  341. value: '传媒',
  342. label: '传媒',
  343. children: [
  344. { value: '记者', label: '记者' },
  345. { value: '主持人', label: '主持人' },
  346. { value: '编辑', label: '编辑' },
  347. { value: '评论员', label: '评论员' }
  348. ]
  349. },
  350. {
  351. value: '法律',
  352. label: '法律',
  353. children: [
  354. { value: '律师', label: '律师' }
  355. ]
  356. },
  357. {
  358. value: '生活服务',
  359. label: '生活服务',
  360. children: [
  361. { value: '健身教练', label: '健身教练' },
  362. { value: '宠物医生', label: '宠物医生' },
  363. { value: '翻译官', label: '翻译官' },
  364. { value: '导游', label: '导游' },
  365. { value: '紧急救助员', label: '紧急救助员' }
  366. ]
  367. },
  368. {
  369. value: '体育',
  370. label: '体育',
  371. children: [
  372. { value: '极限运动', label: '极限运动' },
  373. { value: '健身', label: '健身' },
  374. { value: '瑜伽', label: '瑜伽' },
  375. { value: '休闲运动', label: '休闲运动' },
  376. { value: '水上运动', label: '水上运动' },
  377. { value: '冰雪项目', label: '冰雪项目' },
  378. { value: '空手道', label: '空手道' },
  379. { value: '举重', label: '举重' },
  380. { value: '武术', label: '武术' },
  381. { value: '柔道', label: '柔道' },
  382. { value: '羽毛球', label: '羽毛球' },
  383. { value: '中国象棋', label: '中国象棋' },
  384. { value: '定向越野', label: '定向越野' },
  385. { value: '台球', label: '台球' },
  386. { value: '马术', label: '马术' }
  387. ]
  388. }
  389. ]
  390. },
  391. {
  392. value: '暂不认证',
  393. label: '暂不认证',
  394. children: [
  395. { value: '无认证意愿/必要', label: '无认证意愿/必要' },
  396. { value: '作者自主认证', label: '作者自主认证' },
  397. { value: '机构主体认证', label: '机构主体认证' }
  398. ]
  399. }
  400. ],
  401. // 作者分类信息
  402. categoryNameList: [
  403. {
  404. value: '生活',
  405. label: '生活',
  406. children: [
  407. { value: '职场生活', label: '职场生活' },
  408. { value: '农村生活', label: '农村生活' },
  409. { value: '校园生活', label: '校园生活' },
  410. { value: '趣事', label: '趣事' },
  411. { value: '奇闻猎奇', label: '奇闻猎奇' },
  412. { value: '纪实现场', label: '纪实现场' },
  413. { value: 'vlog', label: 'vlog' },
  414. { value: 'DIY', label: 'DIY' },
  415. { value: '公益', label: '公益' },
  416. { value: '随拍', label: '随拍' },
  417. { value: '生活技巧', label: '生活技巧' }
  418. ]
  419. },
  420. {
  421. value: '情感',
  422. label: '情感',
  423. children: [
  424. { value: '两性情感', label: '两性情感' },
  425. { value: '亲情', label: '亲情' },
  426. { value: '友情', label: '友情' },
  427. { value: '心灵鸡汤', label: '心灵鸡汤' },
  428. { value: '情感微剧', label: '情感微剧' },
  429. { value: '情感语录', label: '情感语录' }
  430. ]
  431. },
  432. {
  433. value: '新闻资讯',
  434. label: '新闻资讯',
  435. children: [
  436. { value: '时政外交', label: '时政外交' },
  437. { value: '财经新闻', label: '财经新闻' },
  438. { value: '法制新闻', label: '法制新闻' },
  439. { value: '交通资讯', label: '交通资讯' },
  440. { value: '社会民生', label: '社会民生' },
  441. { value: '其他', label: '其他' }
  442. ]
  443. },
  444. {
  445. value: '知识',
  446. label: '知识',
  447. children: [
  448. { value: '科学知识', label: '科学知识' },
  449. { value: '语言学习', label: '语言学习' },
  450. { value: '口才/演讲', label: '口才/演讲' },
  451. { value: '职场', label: '职场' },
  452. { value: '营销', label: '营销' },
  453. { value: '星座', label: '星座' },
  454. { value: '科技产品科普', label: '科技产品科普' },
  455. { value: '文化历史', label: '文化历史' },
  456. { value: '冷知识', label: '冷知识' },
  457. { value: '教育考试', label: '教育考试' },
  458. { value: '法律', label: '法律' }
  459. ]
  460. },
  461. {
  462. value: '运动',
  463. label: '运动',
  464. children: [
  465. { value: '健身', label: '健身' },
  466. { value: '瑜伽', label: '瑜伽' },
  467. { value: '极限运动', label: '极限运动' },
  468. { value: '冰雪运动', label: '冰雪运动' },
  469. { value: '足球', label: '足球' },
  470. { value: '高尔夫', label: '高尔夫' },
  471. { value: '其他球类', label: '其他球类' },
  472. { value: '武术搏击', label: '武术搏击' },
  473. { value: '水上运动', label: '水上运动' },
  474. { value: '滑板轮滑', label: '滑板轮滑' },
  475. { value: '休闲运动', label: '休闲运动' }
  476. ]
  477. },
  478. {
  479. value: '才艺',
  480. label: '才艺',
  481. children: [
  482. { value: '绘画', label: '绘画' },
  483. { value: '唱歌', label: '唱歌' },
  484. { value: '舞蹈', label: '舞蹈' },
  485. { value: '演奏', label: '演奏' },
  486. { value: '书法', label: '书法' },
  487. { value: '杂技', label: '杂技' },
  488. { value: '特效炫技', label: '特效炫技' },
  489. { value: '魔术', label: '魔术' },
  490. { value: '手工艺', label: '手工艺' },
  491. { value: '戏曲', label: '戏曲' },
  492. { value: '话剧', label: '话剧' }
  493. ]
  494. },
  495. {
  496. value: '旅行风景',
  497. label: '旅行风景',
  498. children: [
  499. { value: '人文景观', label: '人文景观' },
  500. { value: '历史古迹', label: '历史古迹' },
  501. { value: '自然风景', label: '自然风景' },
  502. { value: '旅行攻略', label: '旅行攻略' },
  503. { value: '当地特色见闻', label: '当地特色见闻' },
  504. { value: '旅行vlog', label: '旅行vlog' }
  505. ]
  506. },
  507. {
  508. value: '明星名人',
  509. label: '明星名人',
  510. children: [
  511. { value: '娱乐明星', label: '娱乐明星' },
  512. { value: '网红', label: '网红' },
  513. { value: '体育明星', label: '体育明星' },
  514. { value: '知名人士', label: '知名人士' }
  515. ]
  516. },
  517. {
  518. value: '时尚',
  519. label: '时尚',
  520. children: [
  521. { value: '美妆', label: '美妆' },
  522. { value: '美甲', label: '美甲' },
  523. { value: '美发', label: '美发' },
  524. { value: '仿妆', label: '仿妆' },
  525. { value: '护肤', label: '护肤' },
  526. { value: '穿搭', label: '穿搭' },
  527. { value: '美拍/修图技巧', label: '美拍/修图技巧' },
  528. { value: '时尚活动', label: '时尚活动' },
  529. { value: '整形整容', label: '整形整容' }
  530. ]
  531. },
  532. {
  533. value: '二次元',
  534. label: '二次元',
  535. children: [
  536. { value: '动漫/番剧', label: '动漫/番剧' },
  537. { value: '表情包壁纸', label: '表情包壁纸' },
  538. { value: '宅舞', label: '宅舞' },
  539. { value: 'cosplay', label: 'cosplay' },
  540. { value: '虚拟人物', label: '虚拟人物' },
  541. { value: '周边', label: '周边' }
  542. ]
  543. },
  544. {
  545. value: '美食',
  546. label: '美食',
  547. children: [
  548. { value: '探店攻略', label: '探店攻略' },
  549. { value: '吃播', label: '吃播' },
  550. { value: '美食秀', label: '美食秀' },
  551. { value: '烹饪教学', label: '烹饪教学' },
  552. { value: '酒类', label: '酒类' },
  553. { value: '茶道', label: '茶道' }
  554. ]
  555. },
  556. {
  557. value: '动物',
  558. label: '动物',
  559. children: [
  560. { value: '猫', label: '猫' },
  561. { value: '狗', label: '狗' },
  562. { value: '鱼类', label: '鱼类' },
  563. { value: '鸟类', label: '鸟类' },
  564. { value: '鼠类', label: '鼠类' },
  565. { value: '爬行动物', label: '爬行动物' },
  566. { value: '昆虫', label: '昆虫' },
  567. { value: '其他动物', label: '其他动物' }
  568. ]
  569. }
  570. ]
  571. }
  572. },
  573. watch: {
  574. visible (val) {
  575. this.drawerVisible = val
  576. },
  577. formType (val) {
  578. this.title = (val === 'create' ? '新增作者' : '更新作者')
  579. }
  580. },
  581. created () {
  582. },
  583. methods: {
  584. onChange (value) {
  585. console.log(value)
  586. },
  587. handleSubmit (e) {
  588. e.preventDefault()
  589. this.form.validateFieldsAndScroll((err, values) => {
  590. if (!err) {
  591. console.log('Received values of form: ', values)
  592. const createParams = { ...values }
  593. if (createParams.categoryName !== undefined) {
  594. createParams.categoryName = createParams.categoryName[createParams.categoryName.length - 1]
  595. }
  596. if (createParams.authInfo !== undefined) {
  597. createParams.authInfo = createParams.authInfo[createParams.authInfo.length - 1]
  598. }
  599. createParams.outSideAccountFlag = createParams.outSideAccountFlag === '是' ? 1 : 0
  600. if (this.formType === 'create') {
  601. saveAuthor(createParams)
  602. .then(response => {
  603. this.$notification.success({
  604. message: response.message
  605. })
  606. this.$emit('refreshTable')
  607. })
  608. .catch(err => {
  609. console.log(err)
  610. })
  611. } else {
  612. createParams['id'] = this.id
  613. saveAuthor(createParams)
  614. .then(response => {
  615. this.$notification.success({
  616. message: response.message
  617. })
  618. this.$emit('refreshTable')
  619. })
  620. .catch(err => {
  621. console.log(err)
  622. })
  623. }
  624. this.content = ''
  625. this.form.resetFields()
  626. this.drawerVisible = false
  627. this.$emit('resetData', false)
  628. }
  629. })
  630. },
  631. handleEdit (record) {
  632. this.id = record.id
  633. fetchAuthor(record.id)
  634. .then(response => {
  635. const postForm = response.model
  636. console.log(postForm)
  637. this.isSend = postForm.isSend
  638. this.form.resetFields()
  639. this.form = this.$form.createForm(this, {
  640. onFieldsChange: (_, changedFields) => {},
  641. mapPropsToFields: () => {
  642. return {
  643. finderUin: this.$form.createFormField({
  644. value: postForm.finderUin
  645. }),
  646. fromChannelName: this.$form.createFormField({
  647. value: postForm.fromChannelName
  648. }),
  649. outSideAccountFlag: this.$form.createFormField({
  650. value: postForm.outSideAccountFlag === 1 ? '是' : '否'
  651. }),
  652. level: this.$form.createFormField({
  653. value: postForm.level
  654. }),
  655. weChatAccount: this.$form.createFormField({
  656. value: postForm.weChatAccount
  657. }),
  658. videoAccount: this.$form.createFormField({
  659. value: postForm.videoAccount
  660. }),
  661. isLocal: this.$form.createFormField({
  662. value: postForm.isLocal
  663. }),
  664. isSend: this.$form.createFormField({
  665. value: postForm.isSend
  666. }),
  667. sendCount: this.$form.createFormField({
  668. value: postForm.sendCount
  669. }),
  670. sendReason: this.$form.createFormField({
  671. value: postForm.sendReason
  672. }),
  673. prove: this.$form.createFormField({
  674. value: postForm.prove
  675. })
  676. }
  677. },
  678. onValuesChange: (_, values) => {
  679. console.log(values)
  680. }
  681. })
  682. })
  683. .catch(err => {
  684. console.log(err)
  685. })
  686. this.drawerVisible = true
  687. },
  688. onClose () {
  689. this.resetForm()
  690. this.drawerVisible = false
  691. this.$emit('resetData', false)
  692. },
  693. resetForm () {
  694. this.isSend = 0
  695. this.form.resetFields()
  696. },
  697. handleChange ({ fileList }) {
  698. console.log(fileList)
  699. },
  700. handleSelectChange (value) {
  701. console.log(`Selected: ${value}`)
  702. }
  703. }
  704. }
  705. </script>
  706. <style>
  707. .edit-input {
  708. padding-right: 100px;
  709. }
  710. .cancel-btn {
  711. position: absolute;
  712. right: 15px;
  713. top: 10px;
  714. }
  715. .ant-upload-select-picture-card i {
  716. font-size: 32px;
  717. color: #999;
  718. }
  719. .ant-upload-select-picture-card .ant-upload-text {
  720. margin-top: 8px;
  721. color: #666;
  722. }
  723. </style>