SegwordConfig.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <!-- -->
  2. <template>
  3. <div class="seg-word-config">
  4. <el-table :data="data" border style="width: 75%">
  5. <el-table-column prop="chs" label="词" width="120"> </el-table-column>
  6. <el-table-column label="拼音" width="220">
  7. <template slot-scope="scope">
  8. <div class="adult-book-input-item">
  9. <el-input
  10. size="small"
  11. v-model="scope.row.pinyin"
  12. placeholder="请输入拼音"
  13. @blur="onBlur(scope.row, 'pinyin')"
  14. style="margin-right: 10px"
  15. ></el-input>
  16. <el-button size="small" @click="_createWordPinyin(scope.row)"
  17. >生成拼音</el-button
  18. >
  19. </div>
  20. </template>
  21. </el-table-column>
  22. <el-table-column label="配置">
  23. <template slot-scope="scope">
  24. <div class="adult-book-input-item">
  25. <span class="adult-book-lable">字的大小:</span>
  26. <el-radio-group v-model="scope.row.fontSize">
  27. <el-radio label="12px">12px</el-radio>
  28. <el-radio label="16px">16px</el-radio>
  29. <el-radio label="20px">20px</el-radio>
  30. <el-radio label="24px">24px</el-radio>
  31. <el-radio label="28px">28px</el-radio>
  32. </el-radio-group>
  33. </div>
  34. <div class="adult-book-input-item">
  35. <span class="adult-book-lable">字的颜色:</span>
  36. <el-radio-group v-model="scope.row.fontColor">
  37. <el-radio
  38. v-for="(item, index) in colorList"
  39. :key="'colorList' + index"
  40. :label="item.value"
  41. >
  42. <span
  43. :style="{
  44. backgroundColor: item.value == 'sub' ? '' : item.value,
  45. }"
  46. :class="item.value != 'sub' ? 'colorItem' : ''"
  47. >{{ item.value == "sub" ? "书的辅助色" : "" }}</span
  48. >
  49. </el-radio>
  50. </el-radio-group>
  51. </div>
  52. <div class="adult-book-input-item">
  53. <span class="adult-book-lable">字体:</span>
  54. <el-radio-group v-model="scope.row.fontFamily">
  55. <el-radio
  56. v-for="(item, index) in fontFamilyList"
  57. :key="'fontFamilyList' + index"
  58. :label="item.value"
  59. >
  60. <span>{{ item.name }}</span>
  61. </el-radio>
  62. </el-radio-group>
  63. </div>
  64. <div class="adult-book-input-item">
  65. <span class="adult-book-lable">设置下划线:</span>
  66. <el-checkbox v-model="scope.row.underLine">显示下划线</el-checkbox>
  67. </div>
  68. <div class="adult-book-input-item">
  69. <span class="adult-book-lable">设置间距:</span>
  70. <el-checkbox-group v-model="scope.row.wordPadding">
  71. <el-checkbox
  72. v-for="(item, index) in paddingList"
  73. :key="'colorList' + index"
  74. :label="item.value"
  75. >
  76. {{ item.name }}
  77. </el-checkbox>
  78. </el-checkbox-group>
  79. </div>
  80. </template>
  81. </el-table-column>
  82. </el-table>
  83. </div>
  84. </template>
  85. <script>
  86. import "@/utils/pinyin_dict_withtone";
  87. import "@/utils/pinyinUtil";
  88. export default {
  89. components: {},
  90. props: ["data"],
  91. data() {
  92. return {
  93. colorList: [
  94. {
  95. value: "#000",
  96. name: "黑色",
  97. },
  98. {
  99. value: "sub",
  100. name: "主题色",
  101. },
  102. ],
  103. paddingList: [
  104. {
  105. value: "left",
  106. name: "要左边距",
  107. },
  108. {
  109. vaule: "right",
  110. name: "要右边距",
  111. },
  112. ],
  113. fontFamilyList: [
  114. {
  115. value: "FZJCGFKTK",
  116. name: "使用中文字体",
  117. },
  118. {
  119. value: "Sans-GBNPC",
  120. name: "使用拼音字体",
  121. },
  122. {
  123. value: "robot",
  124. name: "使用英文字体",
  125. },
  126. ],
  127. };
  128. },
  129. computed: {},
  130. watch: {},
  131. //方法集合
  132. methods: {
  133. onBlur(item, field) {
  134. item[field] = item[field] ? item[field].trim() : "";
  135. },
  136. _createWordPinyin(item) {
  137. let result = pinyinUtil.getPinyin(item.chs);
  138. item.pinyin = result;
  139. },
  140. },
  141. //生命周期 - 创建完成(可以访问当前this实例)
  142. created() {},
  143. //生命周期 - 挂载完成(可以访问DOM元素)
  144. mounted() {},
  145. beforeCreate() {}, //生命周期 - 创建之前
  146. beforeMount() {}, //生命周期 - 挂载之前
  147. beforeUpdate() {}, //生命周期 - 更新之前
  148. updated() {}, //生命周期 - 更新之后
  149. beforeDestroy() {}, //生命周期 - 销毁之前
  150. destroyed() {}, //生命周期 - 销毁完成
  151. activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
  152. };
  153. </script>
  154. <style lang='scss' scoped>
  155. //@import url(); 引入公共css类
  156. .adult-book-input-item {
  157. display: flex;
  158. justify-content: flex-start;
  159. align-items: flex-start;
  160. margin-bottom: 10px;
  161. }
  162. .adult-book-lable {
  163. width: 80px;
  164. font-size: 14px;
  165. display: block;
  166. text-align: right;
  167. margin-right: 8px;
  168. font-weight: bold;
  169. &-bottom {
  170. margin-bottom: 10px;
  171. display: block;
  172. }
  173. }
  174. .el-radio-group {
  175. flex: 1;
  176. display: flex;
  177. flex-wrap: wrap;
  178. margin-top: 5px;
  179. }
  180. .el-radio {
  181. display: flex;
  182. justify-content: flex-start;
  183. align-items: center;
  184. margin-bottom: 6px;
  185. }
  186. .colorItem {
  187. width: 20px;
  188. height: 20px;
  189. border-radius: 100%;
  190. display: block;
  191. }
  192. </style>