km-integral-manage.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <template>
  2. <a-card>
  3. <sd-detail-form
  4. v-if="showForm"
  5. ref="docform"
  6. :record-id="docId"
  7. :page-id="pageId"
  8. :class="$style.docform"
  9. @saved="fwSaved"
  10. >
  11. <template>
  12. <!-- 文档积分 -->
  13. <a-card :class="$style.jifenTable">
  14. <p :class="$style.title">文档积分</p>
  15. <table border="1" width="100%">
  16. <tr>
  17. <th align="center">积分类型</th>
  18. <th align="center">积分行为</th>
  19. <th align="center" colspan="3">积分系数</th>
  20. <th align="center">日积分上限</th>
  21. </tr>
  22. <tr>
  23. <td rowspan="13">文档积分H=(A+F+G)</td>
  24. <td rowspan="2">文档阅读(A)</td>
  25. <td rowspan="2">阅读积分(A)</td>
  26. <td>知识文档</td>
  27. <sd-form-item-td name="docKnowledgeReadPoint" :label="null" />
  28. <sd-form-item-td :input-td-attrs="{ rowspan: 2 }" name="docReadLimit" :label="null" />
  29. </tr>
  30. <tr>
  31. <td>知识地图</td>
  32. <sd-form-item-td name="docMapReadPoint" :label="null" />
  33. </tr>
  34. <tr>
  35. <td rowspan="3">文档点评(F=B*C)</td>
  36. <td colspan="2">点评级别积分(B)</td>
  37. <sd-form-item-td name="docCommentPoint" :label="null" />
  38. <sd-form-item-td
  39. name="docCommentLimit"
  40. :input-td-attrs="{ rowspan: 3 }"
  41. :label="null"
  42. />
  43. </tr>
  44. <tr>
  45. <td rowspan="2">点评角色积分系数(C)</td>
  46. <td>员工</td>
  47. <sd-form-item-td name="docCommentStaffRate" :label="null" />
  48. </tr>
  49. <tr>
  50. <td>专家</td>
  51. <sd-form-item-td name="docCommentExpertRate" :label="null" />
  52. </tr>
  53. <tr>
  54. <td rowspan="4">文档推荐(G=D*E)</td>
  55. <td rowspan="2">推荐级别积分(D)</td>
  56. <td>推荐至门户</td>
  57. <sd-form-item-td name="docRecommendHomePoint" :label="null" />
  58. <sd-form-item-td
  59. :input-td-attrs="{ rowspan: 4 }"
  60. name="docRecommendLimit"
  61. :label="null"
  62. />
  63. </tr>
  64. <tr>
  65. <td>推荐至个人</td>
  66. <sd-form-item-td name="docRecommendPersonPoint" :label="null" />
  67. </tr>
  68. <tr>
  69. <td rowspan="2">推荐角色积分系数(E)</td>
  70. <td>员工</td>
  71. <sd-form-item-td name="docRecommendStaffRate" :label="null" />
  72. </tr>
  73. <tr>
  74. <td>专家</td>
  75. <sd-form-item-td name="docRecommendExpertRate" :label="null" />
  76. </tr>
  77. <tr>
  78. <td colspan="6" :class="$style.tips">
  79. <div>
  80. <p>备注:</p>
  81. <p>文档积分=文档阅读积分+文档点评积分+文档推荐积分</p>
  82. <p>文档阅读积分=∑文档阅读积分*阅读次数</p>
  83. <p>文档点评积分=∑不同角色文档点评积分*点评次数</p>
  84. <p>文档推荐积分=∑不同角色文档推荐积分*推荐次数</p>
  85. </div>
  86. </td>
  87. </tr>
  88. </table>
  89. </a-card>
  90. <!-- 个人积分 -->
  91. <a-card :class="$style.jifenTable">
  92. <p :class="$style.title">个人积分</p>
  93. <table border="1" width="100%">
  94. <tr>
  95. <th align="center">积分类型</th>
  96. <th align="center" colspan="2">积分行为</th>
  97. <th align="center" colspan="2">积分系数</th>
  98. <th align="center">日积分上限</th>
  99. </tr>
  100. <tr>
  101. <td rowspan="8">个人积分</td>
  102. <td colspan="2">
  103. 知识贡献
  104. <p>知识贡献积分=∑作为作者每篇文档积分</p>
  105. </td>
  106. <td>作者文档积分系数</td>
  107. <sd-form-item-td name="perAuthorPoint" :label="null" />
  108. <td>
  109. <a-input-number disabled type="text" />
  110. </td>
  111. </tr>
  112. <tr>
  113. <th colspan="2">知识索取</th>
  114. <td>个人文档阅读</td>
  115. <sd-form-item-td name="perReadPoint" :label="null" />
  116. <sd-form-item-td name="perReadLimit" :label="null" />
  117. </tr>
  118. <tr>
  119. <td rowspan="3">知识推进</td>
  120. <td>
  121. 点评
  122. <p>个人点评文档次数*个人点评积分系数</p>
  123. </td>
  124. <td>个人点评</td>
  125. <sd-form-item-td name="perCommentPoint" :label="null" />
  126. <sd-form-item-td name="perCommentLimit" :label="null" />
  127. </tr>
  128. <tr>
  129. <td>
  130. 推荐
  131. <p>个人推荐文档次数*个人推荐积分系数</p>
  132. </td>
  133. <td>个人推荐</td>
  134. <sd-form-item-td name="perRecommendPoint" :label="null" />
  135. <sd-form-item-td name="perRecommendLimit" :label="null" />
  136. </tr>
  137. <tr>
  138. <td>
  139. 点赞
  140. <p>个人点赞文档次数*个人点赞积分系数</p>
  141. </td>
  142. <td>个人点赞</td>
  143. <sd-form-item-td name="perLikePoint" :label="null" />
  144. <sd-form-item-td name="perLikeLimit" :label="null" />
  145. </tr>
  146. <tr>
  147. <td colspan="6" :class="$style.tips">
  148. <p>备注:</p>
  149. <p>个人积分=知识贡献积分+知识索取积分+知识推进积分</p>
  150. <p>知识推进积分=个人点评积分+个人推荐积分+个人点赞积分</p>
  151. </td>
  152. </tr>
  153. </table>
  154. </a-card>
  155. </template>
  156. </sd-detail-form>
  157. </a-card>
  158. </template>
  159. <script>
  160. import { Message } from 'ant-design-vue'
  161. import KmKnowledageService from '../km-knowledage-service'
  162. import components from './_import-components/km-integral-manage-import'
  163. export default {
  164. name: 'KmIntegralManage',
  165. metaInfo: {
  166. title: '知识积分规则设置',
  167. },
  168. components,
  169. data() {
  170. return {
  171. knowledageId: '',
  172. pageId: 'km/admin/kmPointRule',
  173. docId: null,
  174. showForm: false,
  175. }
  176. },
  177. computed: {},
  178. created() {
  179. KmKnowledageService.getKnowledageCountId().then((res) => {
  180. if (res.data !== -1) {
  181. this.docId = res.data
  182. this.showForm = true
  183. } else {
  184. this.docId = undefined
  185. this.showForm = true
  186. }
  187. })
  188. },
  189. mounted() {},
  190. methods: {
  191. fwSaved() {
  192. Message.success('保存成功')
  193. },
  194. },
  195. }
  196. </script>
  197. <style module lang="scss">
  198. @use '@/common/design' as *;
  199. .jifen-table {
  200. .title {
  201. font-size: $btn-font-size-sm;
  202. font-weight: bold;
  203. text-align: center;
  204. }
  205. table {
  206. th {
  207. height: $input-height-lg;
  208. font-weight: normal;
  209. line-height: $input-height-lg;
  210. text-align: center;
  211. }
  212. td {
  213. padding: 0 10px;
  214. text-align: center;
  215. :global(.ant-form-item) {
  216. margin-bottom: 0;
  217. }
  218. p {
  219. padding-top: 5px;
  220. margin-bottom: 0;
  221. color: $highlight-color;
  222. }
  223. }
  224. .tips {
  225. padding-left: 20px;
  226. color: $highlight-color;
  227. text-align: left;
  228. }
  229. }
  230. }
  231. .divflex {
  232. display: flex;
  233. justify-content: center;
  234. .item {
  235. padding-top: 8px;
  236. }
  237. }
  238. </style>