Column.service.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. import NewAxiosInstanceFunc from '../Service/NewAxiosInstance'
  2. import { INewResponse } from '../Service/INewResponse'
  3. import { IGoodsListItem, IPaging } from 'Material/Material.service'
  4. export interface IColumnAuthorList {
  5. BgImg: string
  6. CollectNum: number
  7. CompanyName: string
  8. CreateTime: string
  9. FollowNum: number
  10. HeadImg: string
  11. Id: number
  12. Introduction: string
  13. IsFollow: number
  14. Label: string
  15. LatestPublishDate: string
  16. LatestPublishTime: string
  17. Mobile: string
  18. ModifyTime: string
  19. NickName: string
  20. RealName: string
  21. SpecialArticleNum: number
  22. SpecialName: string
  23. Status: number // 1收藏2取消收藏
  24. UserId: number
  25. }
  26. export interface IUploadFileRes {
  27. Id: number
  28. PlaySeconds?: number
  29. ResourceUrl: string
  30. ResourceName?: string // 文件名
  31. }
  32. export interface IDocsList {
  33. DocName: string
  34. DocSuffix: string
  35. DocUrl: string
  36. DocIcon?: string
  37. }
  38. export interface IColumnInfo {
  39. BgImg: string
  40. BgImgPc: string
  41. CollectNum: number
  42. CompanyName: string
  43. CreateTime: string
  44. FollowNum: number
  45. HeadImg: string
  46. Id: number
  47. Introduction: string // 专栏介绍
  48. IsFollow: number // 是否已关注 1已关注 0 未关注
  49. Label: string
  50. showLabel?: string[]
  51. LatestPublishDate: string
  52. LatestPublishTime: string
  53. Mobile: string
  54. ModifyTime: string
  55. NickName: string
  56. RealName: string
  57. SpecialArticleNum: number
  58. SpecialName: string // 专栏名称
  59. Status: number // 1启用2禁用
  60. UserId: number
  61. }
  62. export interface IUpdateParams {
  63. SpecialColumnId: number
  64. SpecialName: string
  65. Introduction: string
  66. Label: string
  67. NickName: string
  68. }
  69. export interface IColumnDetail {
  70. LikeCount: number
  71. IsLikeCount: boolean
  72. SpecialLikeCount: number
  73. CompanyTags: string[] // 公司标签
  74. IndustryTags: string[] // 行业标签
  75. SpecialColumnId: number
  76. BgImg: string
  77. CollectNum: number
  78. Content: string
  79. ContentHasImg: number
  80. CreateTime: string
  81. DocUrl: string
  82. Docs: IDocsList[]
  83. HeadImg: string
  84. Id: number
  85. ImgUrl: string
  86. ImgUrlList: string[]
  87. Introduction: string
  88. IsCollect: number
  89. Label: string
  90. Mobile: string
  91. ModifyTime: string
  92. MyCollectNum: number
  93. NickName: string
  94. PublishTime: string
  95. RealName: string
  96. Reason: string
  97. SpecialName: string
  98. Status: number // 1:未发布,2:审核中 3:已发布 4:驳回
  99. TagList: string[]
  100. Tags: string
  101. Title: string
  102. Type: number //类型1:笔记,2:观点
  103. UserId: number
  104. Pv: number
  105. IsApprovalAdmin: boolean // 是否是审批人员
  106. IsFollowAuthor: boolean // 是否已关注
  107. ShareImg: string //分享图片
  108. GoodsList: IGoodsListItem[] // 商品信息
  109. HasPermission: number //1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下(ficc),3:无该品类权限,已提交过申请,4:无该品类权限,未提交过申请,5:潜在客户,未提交过申请,6:潜在客户,已提交过申请
  110. IsCompanyApply: boolean // 机构是否申请过试用
  111. IsNeedBusinessCard: boolean // 是否需要上传名片
  112. IsResearch: boolean // 是否是买方研选
  113. IsResearchSpecial: boolean // 是否属于特殊的研选
  114. IsShowWxPay: boolean // 是否展示微信支付
  115. OrderCode: string // 订单号
  116. PayTimeCountdown: number // 支付倒计时
  117. PopupMsg: string //权限弹窗信息
  118. PopupPriceMsg: string //价格弹窗信息
  119. Detail: IActivityDetialBase
  120. }
  121. export interface IMessageDetail {
  122. IsLikeCount: boolean
  123. LikeCount: number
  124. CreateTime: string
  125. RealName: string //用户实际名称
  126. Headimgurl: string //用户头像
  127. Content: string //留言内容
  128. SourceTitle: string //专栏标题
  129. CheckIds: number[]
  130. MessageId: number //留言消息ID
  131. YanxuanSpecialId: number
  132. Status: number //消息状态,0未公开、1:已公开
  133. TopTime: number //置顶时间(大于零置顶,等于零未置顶)
  134. HaveOtherTop: boolean //是否有其它的置顶
  135. ChildList: IMsgChildrenList[]
  136. }
  137. export interface IMsgChildrenList {
  138. Headimgurl: string | undefined
  139. CreateTime: string //创建时间
  140. MessageId: number
  141. Content: string //留言内容
  142. }
  143. export interface IActivityDetialBase {
  144. IsNeedBusinessCard: boolean // 是否需要上传名片
  145. CompanyTags: string[] // 公司标签
  146. IndustryTags: string[] // 行业标签
  147. SpecialColumnId: number
  148. BgImg: string
  149. CollectNum: number
  150. Content: string
  151. ContentHasImg: number
  152. CreateTime: string
  153. DocUrl: string
  154. Docs: IDocsList[]
  155. HasPermission: number // 1有权限 2无权限
  156. HeadImg: string
  157. Id: number
  158. ImgUrl: string
  159. ImgUrlList: string[]
  160. Introduction: string
  161. IsCollect: number
  162. Label: string
  163. Mobile: string
  164. ModifyTime: string
  165. MyCollectNum: number
  166. NickName: string
  167. PublishTime: string
  168. RealName: string
  169. Reason: string
  170. SpecialName: string
  171. Status: number // 1:未发布,2:审核中 3:已发布 4:驳回
  172. TagList: string[]
  173. Tags: string
  174. Title: string
  175. Type: number //类型1:笔记,2:观点
  176. UserId: number
  177. Pv: number
  178. IsApprovalAdmin: boolean // 是否是审批人员
  179. IsFollowAuthor: boolean // 是否已关注
  180. ShareImg: string //分享图片
  181. }
  182. export interface ISaveColumnDetailParams {
  183. Id: number
  184. Content: string
  185. IndustryTags: string[] // 行业标签
  186. CompanyTags: string[] // 公司标签
  187. DoType: number // 1保存2发布
  188. ImgUrl: string[]
  189. Docs: IDocsList[]
  190. Title: string
  191. Type: number //类型1:笔记,2:观点
  192. IsApprovalPersonnel?: boolean // 是否是审批人员
  193. }
  194. export interface IEditColumnDetail extends ISaveColumnDetailParams {
  195. SpecialColumnId: number
  196. HeadImg: string
  197. NickName: string
  198. PublishTime: string
  199. ImgUrlList: string[]
  200. }
  201. export const ColumnService = {
  202. getColumnAuthorList: (
  203. PageSize: number, // 每页数据条数
  204. CurrentIndex: number, // 当前页页码,从1开始
  205. UserId?: number,
  206. Status?: number // 1启用2禁用
  207. ): INewResponse<{
  208. List: IColumnAuthorList[]
  209. IsAuthor: boolean
  210. IsImproveInformation: boolean
  211. Paging: IPaging
  212. HeadImg: string
  213. SpecialColumnId: number
  214. }> =>
  215. NewAxiosInstanceFunc({
  216. url: `/yanxuan_special/author/list`,
  217. method: 'get',
  218. params: { PageSize, CurrentIndex, UserId, Status }
  219. }),
  220. geColumnList: (
  221. PageSize: number, // 每页数据条数
  222. CurrentIndex: number, // 当前页页码,从1开始
  223. SpecialColumnId?: number
  224. ): INewResponse<{ List: IColumnDetail[]; IsAuthor: boolean; IsImproveInformation: boolean; Paging: IPaging }> =>
  225. NewAxiosInstanceFunc({
  226. url: `/yanxuan_special/list`,
  227. method: 'get',
  228. params: { PageSize, CurrentIndex, SpecialColumnId }
  229. }),
  230. getAuthorDetail: (SpecialColumnId: number): INewResponse<IColumnInfo> =>
  231. NewAxiosInstanceFunc({
  232. url: `/yanxuan_special/author/detail`,
  233. method: 'get',
  234. params: { SpecialColumnId }
  235. }),
  236. getColumnDetail: (Id: number, InviteShareCode?: string): INewResponse<IColumnDetail> =>
  237. NewAxiosInstanceFunc({
  238. url: `/yanxuan_special/detail`,
  239. method: 'get',
  240. params: { Id, InviteShareCode }
  241. }),
  242. getSearchIndustry: (Keyword: string): INewResponse<string[]> =>
  243. NewAxiosInstanceFunc({
  244. url: `/yanxuan_special/industrySearch`,
  245. method: 'get',
  246. params: { Keyword }
  247. }),
  248. getSearchCompanyTags: (Keyword: string): INewResponse<string[]> =>
  249. NewAxiosInstanceFunc({
  250. url: `/yanxuan_special/companySearch`,
  251. method: 'get',
  252. params: { Keyword }
  253. }),
  254. getColumnCenterList: (Status: number): INewResponse<IColumnDetail[]> =>
  255. NewAxiosInstanceFunc({
  256. url: `yanxuan_special/center`,
  257. method: 'get',
  258. params: { Status } // 1:未发布,2:审核中 3:已发布 4:驳回
  259. }),
  260. getColumnManageList: (
  261. PageSize: number, // 每页数据条数
  262. CurrentIndex: number, // 当前页页码,从1开始
  263. MessageType: number //留言类型1:普通留言、2:公开留言
  264. ): INewResponse<IMessageDetail[]> =>
  265. NewAxiosInstanceFunc({
  266. url: `yanxuan_special/message/manage/list`,
  267. method: 'get',
  268. params: { PageSize, CurrentIndex, MessageType } // 1:未发布,2:审核中 3:已发布 4:驳回
  269. }),
  270. getColumnAuthorFansList: (
  271. PageSize: number, // 每页数据条数
  272. CurrentIndex: number // 当前页页码,从1开始
  273. ): INewResponse<IMessageDetail[]> =>
  274. NewAxiosInstanceFunc({
  275. url: `yanxuan_special/author/fans_list`,
  276. method: 'get',
  277. params: { PageSize, CurrentIndex } // 1:未发布,2:审核中 3:已发布 4:驳回
  278. }),
  279. getColumnSpecialList: (
  280. PageSize: number, // 每页数据条数
  281. CurrentIndex: number, // 当前页页码,从1开始
  282. YanxuanSpecialId: number
  283. ): INewResponse<IMessageDetail[]> =>
  284. NewAxiosInstanceFunc({
  285. url: `yanxuan_special/message/special/list`,
  286. method: 'get',
  287. params: { PageSize, CurrentIndex, YanxuanSpecialId } //
  288. }),
  289. postUpdateAuthorHeadImg: (SpecialColumnId: number, HeadImg: string): INewResponse =>
  290. NewAxiosInstanceFunc({
  291. url: `/yanxuan_special/author/head_img`,
  292. method: 'post',
  293. data: { SpecialColumnId, HeadImg }
  294. }),
  295. postColumnCollect: (Id: number, Status: number): INewResponse =>
  296. NewAxiosInstanceFunc({
  297. url: `/yanxuan_special/collect`,
  298. method: 'post',
  299. data: { Id, Status } // Status 1收藏2取消收藏
  300. }),
  301. postColumnAuthorFollow: (FollowSpecialColumnId: number, Status: number, SpecialId?: number): INewResponse =>
  302. NewAxiosInstanceFunc({
  303. url: `/yanxuan_special/follow`,
  304. method: 'post',
  305. data: { FollowSpecialColumnId, Status, SpecialId } // Status 1收藏2取消收藏
  306. }),
  307. postUpdateAuthorDetail: (params: IUpdateParams): INewResponse =>
  308. NewAxiosInstanceFunc({
  309. url: `/yanxuan_special/author/save`,
  310. method: 'post',
  311. data: { ...params }
  312. }),
  313. postCheckColumnDetail: (params: { Content: string; ImgUrl: string[] }): INewResponse =>
  314. NewAxiosInstanceFunc({
  315. url: `/yanxuan_special/check`,
  316. method: 'post',
  317. data: { ...params }
  318. }),
  319. postSaveColumnDetail: (params: ISaveColumnDetailParams): INewResponse =>
  320. NewAxiosInstanceFunc({
  321. url: `/yanxuan_special/save`,
  322. method: 'post',
  323. data: { ...params }
  324. }),
  325. postUploadFile: (file: any): INewResponse<IUploadFileRes> => {
  326. const formData = new FormData()
  327. formData.set('file', file)
  328. return NewAxiosInstanceFunc({
  329. url: `/resource/file/upload`,
  330. method: 'post',
  331. data: formData
  332. })
  333. },
  334. postDeleteNote: (Id: number): INewResponse =>
  335. NewAxiosInstanceFunc({
  336. url: `/yanxuan_special/del`,
  337. method: 'post',
  338. data: { Id }
  339. }),
  340. postCancelNote: (Id: number): INewResponse =>
  341. NewAxiosInstanceFunc({
  342. url: `/yanxuan_special/cancel`,
  343. method: 'post',
  344. data: { Id }
  345. }),
  346. postCheckColumnNote: (Id: number, Status: number, Reason: string): INewResponse =>
  347. NewAxiosInstanceFunc({
  348. url: `/yanxuan_special/enable`,
  349. method: 'post',
  350. data: { Id, Status, Reason } // 1通过2驳回
  351. }),
  352. postMessageAdd: (YanxuanSpecialId: number, Content: string, ParentId?: number): INewResponse =>
  353. NewAxiosInstanceFunc({
  354. url: `/yanxuan_special/message/add`,
  355. method: 'post',
  356. data: { YanxuanSpecialId, ParentId, Content }
  357. }),
  358. postMessageDelete: (MessageId: number): INewResponse =>
  359. NewAxiosInstanceFunc({
  360. url: `/yanxuan_special/message/delete`,
  361. method: 'post',
  362. data: { MessageId }
  363. }),
  364. postMessagePublic: (MessageIds: (string | number)[], DoType: number): INewResponse =>
  365. NewAxiosInstanceFunc({
  366. url: `/yanxuan_special/message/public`,
  367. method: 'post',
  368. data: { MessageIds, DoType }
  369. }),
  370. postMessageTop: (MessageId: number, DoType: number): INewResponse =>
  371. NewAxiosInstanceFunc({
  372. url: `/yanxuan_special/message/top`,
  373. method: 'post',
  374. data: { MessageId, DoType }
  375. }),
  376. postMessageLike: (MessageId: number, DoType: number): INewResponse =>
  377. NewAxiosInstanceFunc({
  378. url: `/yanxuan_special/message/like`,
  379. method: 'post',
  380. data: { MessageId, DoType }
  381. }),
  382. postColumnLike: (YanxuanSpecialId: number, DoType: number): INewResponse =>
  383. NewAxiosInstanceFunc({
  384. url: `/yanxuan_special/like`,
  385. method: 'post',
  386. data: { YanxuanSpecialId, DoType }
  387. })
  388. }