多租户商城-商户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
5.5 KiB

  1. <template>
  2. <div class="textTool">
  3. <h3 class="toolTit">头部设置</h3>
  4. <div class="operationBox">
  5. <div class="itemBox">
  6. <div class="Tit">LOGO类型</div>
  7. <el-radio-group v-model="activeComponent.componentContent.logoType">
  8. <el-radio :label="1">图片</el-radio>
  9. <el-radio :label="2">文本</el-radio>
  10. </el-radio-group>
  11. </div>
  12. <div v-if="activeComponent.componentContent.logoType === 1">
  13. <tool-single-img :imageUrl.sync='activeComponent.componentContent.imageUrl' tip='建议尺寸: 高度100px, 宽度自适应'></tool-single-img>
  14. </div>
  15. <div v-else>
  16. <div class="itemBox">
  17. <div class="Tit">LOGO文本</div>
  18. <el-input class="item-input" v-model="activeComponent.componentContent.title" maxlength="20" :placeholder="$t('common.defaulthint')"></el-input>
  19. </div>
  20. <div class="itemBox">
  21. <div class="Tit">文本大小</div>
  22. <div class="modifyBox fontSize">
  23. <font-size-select :fontSize.sync='activeComponent.componentContent.fontSizeNum'></font-size-select>
  24. </div>
  25. </div>
  26. <div class="itemBox">
  27. <div class="Tit">文本粗细</div>
  28. <div class="Info" v-text="activeComponent.componentContent.textFontW === 'bold' ? '加粗体' : '常规体'"></div>
  29. <div class="modifyBox fontSize">
  30. <span class="iconfont" :class="{textActive: activeComponent.componentContent.textFontW === 'bold'}" @click="changeFontW(type = 'bold')">&#xe649;</span>
  31. <span class="iconfont" :class="{textActive: activeComponent.componentContent.textFontW === 'normal'}" @click="changeFontW(type = 'normal')">&#xe8c2;</span>
  32. </div>
  33. </div>
  34. <div class="itemBox">
  35. <div class="Tit">文本颜色</div>
  36. <div class="Info">{{activeComponent.componentContent.titColor}}</div>
  37. <div class="modifyBox">
  38. <div class="colorBox">
  39. <span @click="resetColor">{{ $t('common.reset') }}</span>
  40. <div class="block">
  41. <el-color-picker v-model="activeComponent.componentContent.titColor"></el-color-picker>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. <div class="itemBox">
  47. <div class="Tit">使用默认标题头</div>
  48. <el-radio-group v-model="activeComponent.componentContent.useSelfTitle">
  49. <el-radio :label="1"></el-radio>
  50. <el-radio :label="2"></el-radio>
  51. </el-radio-group>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </template>
  57. <script>
  58. import {toolMixin} from '@@/config/mixin'
  59. import FontSizeSelect from '../toolModule/font-size-select'
  60. import ToolSingleImg from "../toolModule/tool-single-img";
  61. export default {
  62. name: 'textTool',
  63. components: {ToolSingleImg, FontSizeSelect },
  64. mixins: [toolMixin],
  65. data () {
  66. return {
  67. }
  68. },
  69. computed: {
  70. },
  71. methods: {
  72. // 修改文本字体粗细
  73. changeFontW (type) {
  74. this.activeComponent.componentContent.textFontW = type
  75. },
  76. // 重置文本颜色
  77. resetColor () {
  78. this.activeComponent.componentContent.titColor = '#333333'
  79. }
  80. }
  81. }
  82. </script>
  83. <style lang="scss" scoped>
  84. .textTool {
  85. padding: 20px 20px 0 20px;
  86. h3 {
  87. font-size: 18px;
  88. font-weight: 500;
  89. height: 35px;
  90. line-height: 35px;
  91. color: #333333;
  92. margin-bottom: 20px;
  93. }
  94. .operationBox {
  95. margin-top: 30px;
  96. .itemBox {
  97. font-size: 14px;
  98. display: flex;
  99. margin-bottom: 20px;
  100. align-items: center;
  101. .Tit {
  102. color: #888888;
  103. margin-right: 10px;
  104. width: 70px;
  105. }
  106. .item-input{
  107. flex: 1;
  108. }
  109. .Info {
  110. color: #222222;
  111. }
  112. .modifyBox {
  113. text-align: right;
  114. margin-left: auto;
  115. span {
  116. height: 26px;
  117. line-height: 26px;
  118. float: left;
  119. display: block;
  120. text-align: center;
  121. cursor: pointer;
  122. width: 30px;
  123. border: 1px solid #E8EAEC;
  124. }
  125. /*span:last-child {*/
  126. /* border-right: 1px solid #E8EAEC;*/
  127. /*}*/
  128. .textActive {
  129. border: 1px solid $mainColor;
  130. color: $mainColor;
  131. }
  132. .colorBox {
  133. display: flex;
  134. align-items: center;
  135. justify-content: flex-end;
  136. span {
  137. margin-right: 10px;
  138. cursor: pointer;
  139. border: none;
  140. color: $mainColor;
  141. }
  142. }
  143. }
  144. .fontSize {
  145. span:nth-child(1) {
  146. font-size: 16px;
  147. }
  148. span:nth-child(2) {
  149. font-size: 14px;
  150. }
  151. span:nth-child(3) {
  152. font-size: 12px;
  153. }
  154. }
  155. }
  156. .moreBox{
  157. border: 1px solid #E8EAEC;
  158. border-radius: 4px;
  159. padding:20px 10px;
  160. .radio{
  161. margin-bottom: 20px;
  162. }
  163. .el-radio{
  164. margin-right: 10px;
  165. }
  166. .link{
  167. display: flex;
  168. justify-content: space-between;
  169. align-items: center;
  170. }
  171. }
  172. }
  173. .block {
  174. height: 30px;
  175. }
  176. ::v-deep .el-color-picker__trigger {
  177. width: 45px;
  178. height: 26px;
  179. }
  180. ::v-deep .el-icon-arrow-down:before {
  181. display: none;
  182. }
  183. }
  184. </style>