From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/views/mp/components/wx-reply/components/TabNews.vue |   76 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/src/views/mp/components/wx-reply/components/TabNews.vue b/src/views/mp/components/wx-reply/components/TabNews.vue
new file mode 100644
index 0000000..565b1fb
--- /dev/null
+++ b/src/views/mp/components/wx-reply/components/TabNews.vue
@@ -0,0 +1,76 @@
+<template>
+  <div>
+    <el-row>
+      <div class="select-item" v-if="reply.articles && reply.articles.length > 0">
+        <WxNews :articles="reply.articles" />
+        <el-col class="ope-row">
+          <el-button type="danger" circle @click="onDelete">
+            <Icon icon="ep:delete" />
+          </el-button>
+        </el-col>
+      </div>
+      <!-- 閫夋嫨绱犳潗 -->
+      <el-col :span="24" v-if="!reply.content">
+        <el-row style="text-align: center" align="middle">
+          <el-col :span="24">
+            <el-button type="success" @click="showDialog = true">
+              {{ newsType === NewsType.Published ? '閫夋嫨宸插彂甯冨浘鏂�' : '閫夋嫨鑽夌绠卞浘鏂�' }}
+              <Icon icon="ep:circle-check" />
+            </el-button>
+          </el-col>
+        </el-row>
+      </el-col>
+      <el-dialog title="閫夋嫨鍥炬枃" v-model="showDialog" width="90%" append-to-body destroy-on-close>
+        <WxMaterialSelect
+          type="news"
+          :account-id="reply.accountId"
+          :newsType="newsType"
+          @select-material="selectMaterial"
+        />
+      </el-dialog>
+    </el-row>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import WxNews from '@/views/mp/components/wx-news'
+import WxMaterialSelect from '@/views/mp/components/wx-material-select'
+import { Reply, NewsType } from './types'
+
+const props = defineProps<{
+  modelValue: Reply
+  newsType: NewsType
+}>()
+const emit = defineEmits<{
+  (e: 'update:modelValue', v: Reply)
+}>()
+const reply = computed<Reply>({
+  get: () => props.modelValue,
+  set: (val) => emit('update:modelValue', val)
+})
+
+const showDialog = ref(false)
+
+const selectMaterial = (item: any) => {
+  showDialog.value = false
+  reply.value.articles = item.content.newsItem
+}
+
+const onDelete = () => {
+  reply.value.articles = []
+}
+</script>
+
+<style lang="scss" scoped>
+.select-item {
+  width: 280px;
+  padding: 10px;
+  margin: 0 auto 10px;
+  border: 1px solid #eaeaea;
+
+  .ope-row {
+    padding-top: 10px;
+    text-align: center;
+  }
+}
+</style>

--
Gitblit v1.8.0