index.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <template>
  2. <div class="tagSetIdx">
  3. <s-header :name="$t('device.editAdRule.title')" :noback="false"></s-header>
  4. <div class="o-p-10 cust_vantBorder">
  5. <div class="l-flex-between kBordBott o-pb-20">
  6. <div
  7. class="c-border o-ptb-10 o-plr-12 l-flex-RC l-flex-w o-w"
  8. style="padding-bottom: 0; min-height: 36px;"
  9. >
  10. <div
  11. class="c-border l-flex-RC o-p-3 c-color-f o-mr-10 o-mb-10"
  12. style="background: #e59a6d; border: 1px solid #e59a6d"
  13. v-for="(item, index) in tagList"
  14. :key="index"
  15. >
  16. <span class="o-mr-3">{{ item.name }}</span>
  17. <van-icon @click.stop="delTag(item, index)" name="clear" />
  18. </div>
  19. </div>
  20. <div @click="submitClk" class="submitBtn o-ml-10">
  21. <van-button round type="primary">{{
  22. $t("device.editAdRule.submitPush")
  23. }}</van-button>
  24. </div>
  25. </div>
  26. <van-field
  27. colon
  28. :border="false"
  29. v-model="cofficentForm.name"
  30. clearable
  31. :placeholder="$t('device.editAdRule.ruleNamePlace')"
  32. :label="$t('device.editAdRule.ruleName')"
  33. />
  34. <div class="l-flex-center" style="margin: 16px">
  35. <van-button round class="searchBtn" type="primary" size="large" @click="toSearch">
  36. {{ $t("advertManage.advertRule.addRule.search") }}
  37. </van-button>
  38. </div>
  39. <div class="o-mt-30">
  40. <div class="l-flex-RC l-flex-w">
  41. <div
  42. @click="addAllTag(item)"
  43. class="c-border l-flex-RC o-p-3 c-color-f o-mr-10 o-mb-10"
  44. style="background: #e59a6d; border: 1px solid #e59a6d"
  45. v-for="(item, index) in allTagList"
  46. :key="index"
  47. >
  48. <span class="o-mr-3">{{ item.name }}</span>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. </template>
  55. <script>
  56. // 导入接口
  57. import {
  58. Api_getTTimeRules,
  59. Api_getUpdateEquimentpTimeRule,
  60. } from "@/service/advertManage";
  61. import sHeader from "@/components/SimpleHeader";
  62. import { onMounted, reactive, ref } from "vue";
  63. import { useRoute, useRouter } from "vue-router";
  64. import { showToast } from "vant";
  65. import { useI18n } from "vue-i18n";
  66. export default {
  67. components: { sHeader },
  68. setup() {
  69. const { t } = useI18n();
  70. const router = useRouter();
  71. const route = useRoute();
  72. const cofficentForm = reactive({
  73. name: "",
  74. equipmentId: "",
  75. });
  76. const tagList = ref([]);
  77. // 所有标签
  78. const allTagList = ref([]);
  79. // 刚进页面
  80. onMounted(() => {
  81. const val = route.query.deviceId || "";
  82. cofficentForm.equipmentId = val;
  83. const adRuleList = route.query.adRuleList;
  84. tagList.value = JSON.parse(adRuleList);
  85. });
  86. // 点击搜索
  87. const toSearch = () => {
  88. Api_getTTimeRules(cofficentForm).then((res) => {
  89. console.log("res", res);
  90. allTagList.value = res.data.data || [];
  91. });
  92. };
  93. // 点击所有标签
  94. const addAllTag = (row) => {
  95. tagList.value = [row];
  96. };
  97. // 点击删除
  98. const delTag = (row, idx) => {
  99. tagList.value.splice(idx, 1);
  100. };
  101. // 点击添加
  102. const submitClk = () => {
  103. if (tagList.value.length > 0) {
  104. const param = {
  105. equipmentId: cofficentForm.equipmentId,
  106. timeRuleId: tagList.value[0]["id"],
  107. };
  108. Api_getUpdateEquimentpTimeRule(param).then((res) => {
  109. console.log("res", res);
  110. if (res.data.code === "00000") {
  111. setTimeout(() => {
  112. router.back();
  113. }, 300);
  114. }
  115. });
  116. } else {
  117. showToast(t("device.editAdRule.adRulePlace"));
  118. }
  119. };
  120. return {
  121. cofficentForm,
  122. tagList,
  123. allTagList,
  124. toSearch,
  125. addAllTag,
  126. delTag,
  127. submitClk,
  128. };
  129. },
  130. };
  131. </script>
  132. <style lang="less" scoped>
  133. .tagSetIdx {
  134. height: calc(100%-44px);
  135. overflow: hidden;
  136. overflow-y: auto;
  137. .submitBtn {
  138. flex: 0 0 80px;
  139. :deep(.van-button--round) {
  140. width: 100%;
  141. }
  142. }
  143. .searchBtn {
  144. width: 50%;
  145. }
  146. .van-button--primary {
  147. background-color: #4d6add;
  148. border-color: #4d6add;
  149. }
  150. }
  151. </style>