c_input_item.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <div class="box" v-if="configData">
  3. <div class="c_row-item">
  4. <Col class="label" span="4">
  5. {{ configData.title }}
  6. </Col>
  7. <Col span="19" class="slider-box">
  8. <div @click="getLink(configData.title)">
  9. <Input
  10. :icon="configData.title == '链接' ? 'ios-arrow-forward' : ''"
  11. :readonly="configData.title == '链接' ? true : false"
  12. v-model="configData.value"
  13. :placeholder="configData.place"
  14. :maxlength="configData.max"
  15. />
  16. </div>
  17. </Col>
  18. </div>
  19. <linkaddress ref="linkaddres" @linkUrl="linkUrl"></linkaddress>
  20. </div>
  21. </template>
  22. <script>
  23. import linkaddress from '@/components/linkaddress';
  24. export default {
  25. name: 'c_input_item',
  26. props: {
  27. configObj: {
  28. type: Object,
  29. },
  30. configNme: {
  31. type: String,
  32. },
  33. },
  34. components: {
  35. linkaddress,
  36. },
  37. data() {
  38. return {
  39. value: '',
  40. defaults: {},
  41. configData: {},
  42. };
  43. },
  44. created() {
  45. this.defaults = this.configObj;
  46. this.configData = this.configObj[this.configNme];
  47. },
  48. watch: {
  49. configObj: {
  50. handler(nVal, oVal) {
  51. this.defaults = nVal;
  52. this.configData = nVal[this.configNme];
  53. },
  54. immediate: true,
  55. deep: true,
  56. },
  57. },
  58. methods: {
  59. linkUrl(e) {
  60. this.configData.value = e;
  61. },
  62. getLink(title) {
  63. if (title != '链接') {
  64. return;
  65. }
  66. this.$refs.linkaddres.modals = true;
  67. },
  68. },
  69. };
  70. </script>
  71. <style scoped lang="stylus">
  72. /deep/.ivu-input
  73. font-size 13px!important
  74. .c_row-item
  75. margin-bottom 13px
  76. </style>