index.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <template>
  2. <div class="manager-container">
  3. <div class="manager-components">
  4. {{ dataItem }}
  5. </div>
  6. <div class="manager-template">
  7. <LayoutVolume :edata="data" :edataItem="dataItem" @selectItem="selectItem" />
  8. </div>
  9. <div class="manager-attribute">
  10. <div class="card-attr">
  11. <div class="card-doc">
  12. <div class="card-header" @click="attrShow.attr = !attrShow.attr">
  13. <h3>表单属性</h3>
  14. <van-icon :name="attrShow.attr ? 'arrow-up' : 'arrow-down'" class="icon" />
  15. </div>
  16. <transition name="collapse">
  17. <div class="card-body" v-if="attrShow.attr">
  18. <div class="card-scroll">
  19. <van-cell-group>
  20. <van-field name="radio" label="主题">
  21. <template #input>
  22. <van-radio-group v-model="data.topic.layout_type" direction="horizontal">
  23. <van-radio :name="1">主题1</van-radio>
  24. <van-radio :name="2">主题2</van-radio>
  25. </van-radio-group>
  26. </template>
  27. </van-field>
  28. <van-field name="radio" label="显示标题">
  29. <template #input>
  30. <van-radio-group v-model="data.topic.is_name" direction="horizontal">
  31. <van-radio :name="1">是</van-radio>
  32. <van-radio :name="0">否</van-radio>
  33. </van-radio-group>
  34. </template>
  35. </van-field>
  36. <van-field v-model="data.topic.name" label="表单标题" placeholder="请输入" />
  37. <van-field name="radio" label="显示描述">
  38. <template #input>
  39. <van-radio-group v-model="data.topic.is_memo" direction="horizontal">
  40. <van-radio :name="1">是</van-radio>
  41. <van-radio :name="0">否</van-radio>
  42. </van-radio-group>
  43. </template>
  44. </van-field>
  45. <van-field
  46. v-model="data.topic.memo"
  47. label="表单描述"
  48. placeholder="请输入"
  49. type="textarea"
  50. rows="1"
  51. autosize
  52. />
  53. <van-field
  54. v-model="data.topic.submessage"
  55. label="提交消息"
  56. placeholder="请输入"
  57. type="textarea"
  58. rows="1"
  59. autosize
  60. />
  61. <van-field name="radio" label="对齐方式">
  62. <template #input>
  63. <van-radio-group v-model="data.topic.layout_align" direction="horizontal">
  64. <van-radio name="left">左对齐</van-radio>
  65. <van-radio name="right">右对齐</van-radio>
  66. </van-radio-group>
  67. </template>
  68. </van-field>
  69. <van-field name="radio" label="排列方式">
  70. <template #input>
  71. <van-radio-group v-model="data.topic.layout_inline" direction="horizontal">
  72. <van-radio :name="1">水平</van-radio>
  73. <van-radio :name="2">垂直</van-radio>
  74. </van-radio-group>
  75. </template>
  76. </van-field>
  77. </van-cell-group>
  78. </div>
  79. </div>
  80. </transition>
  81. </div>
  82. <div class="card-doc" v-if="!!dataItem">
  83. <div class="card-header" @click="attrShow.compt = !attrShow.compt">
  84. <h3>组件属性</h3>
  85. <van-icon :name="attrShow.compt ? 'arrow-up' : 'arrow-down'" class="icon" />
  86. </div>
  87. <transition name="collapse">
  88. <div class="card-body" v-if="attrShow.compt">
  89. <div class="card-scroll">
  90. <van-cell-group>
  91. <van-field name="radio" label="组件类型">
  92. <template #input>
  93. <van-radio-group :value="dataItem.type" direction="horizontal">
  94. <van-radio name="radio" @click="onChangeCompType('radio')">radio</van-radio>
  95. <van-radio name="checkbox" @click="onChangeCompType('checkbox')">checkbox</van-radio>
  96. <van-radio name="input" @click="onChangeCompType('input')">input</van-radio>
  97. <van-radio name="textarea" @click="onChangeCompType('textarea')">textarea</van-radio>
  98. <van-radio name="slider" @click="onChangeCompType('slider')">slider</van-radio>
  99. </van-radio-group>
  100. </template>
  101. </van-field>
  102. <van-field
  103. v-model="dataItem.title"
  104. label="组件题目"
  105. placeholder="请输入"
  106. type="textarea"
  107. rows="1"
  108. autosize />
  109. <van-field name="radio" label="是否必填">
  110. <template #input>
  111. <van-radio-group v-model="dataItem.required" direction="horizontal">
  112. <van-radio :name="1">是</van-radio>
  113. <van-radio :name="0">否</van-radio>
  114. </van-radio-group>
  115. </template>
  116. </van-field>
  117. <van-field
  118. :value="dataItem.content.map(item => `${item.title}${item.memo ? ' | ' : ''}${item.memo||''}`).join('\n')"
  119. label="题目选项"
  120. placeholder="选项一 | 描述,Enter 编辑下个选项"
  121. type="textarea"
  122. rows="5"
  123. autosize
  124. @change="onChangeContent" />
  125. <van-field name="radio" label="对齐方式">
  126. <template #input>
  127. <van-radio-group v-model="dataItem.layout_align" direction="horizontal">
  128. <van-radio name="">继承</van-radio>
  129. <van-radio name="left">靠左</van-radio>
  130. <van-radio name="right">靠右</van-radio>
  131. </van-radio-group>
  132. </template>
  133. </van-field>
  134. <van-field name="radio" label="排列方式">
  135. <template #input>
  136. <van-radio-group v-model="dataItem.layout_inline" direction="horizontal">
  137. <van-radio name="">继承</van-radio>
  138. <van-radio :name="1">水平</van-radio>
  139. <van-radio :name="2">垂直</van-radio>
  140. </van-radio-group>
  141. </template>
  142. </van-field>
  143. </van-cell-group>
  144. </div>
  145. </div>
  146. </transition>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </template>
  152. <script>
  153. import mixins from "./mixins";
  154. import attribute from "./mixins/attribute";
  155. export default {
  156. mixins: [mixins, attribute]
  157. };
  158. </script>
  159. <style lang="scss" scoped>
  160. @import "./common.scss";
  161. @import "./style.scss";
  162. </style>