refactor: 四端完成 Options API → script setup + vuex → pinia 迁移

- buyer(95) / seller(169) / im(53) / manager(280) 共 597 个组件全部从 Options API 转换为 <script setup>
- 四端 vuex 全部移除,状态管理统一迁移至 pinia 4(stores/ 目录)
- util.js 等基础设施去除 vm 首参依赖;全局属性($Message/$filters 等)在 script 内改为具名导入
- 被外部 ref 访问的公共组件均已补齐 defineExpose(清单见各端 MIGRATION-VUE3.md)
- 各端 eslint 启用 vue/component-api-style 防止新代码回退 Options API
- 四端 yarn build 全部通过;迁移约定与注意事项已更新至各端 MIGRATION-VUE3.md
This commit is contained in:
lifenlong
2026-10-13 07:06:59 +08:00
parent 870bacdd8c
commit 88fc1b0b2a
674 changed files with 71220 additions and 69943 deletions

View File

@@ -26,57 +26,62 @@
</el-card>
</template>
<script>
export default {
name: "index",
props: {
_Tabs: {
type: null,
default: "",
},
_Title: {
type: null,
default: "卡片头部",
},
_More: {
type: null,
default: false,
},
_Size: {
type: Number,
default: 16,
},
_Src: {
type: null,
default: null,
},
_ActiveTab: {
type: Number,
default: 0,
},
<script setup>
import { ref, watch } from "vue";
import { useRouter } from "vue-router";
defineOptions({ name: "index" });
const props = defineProps({
_Tabs: {
type: null,
default: "",
},
data() {
return {
isActive: this._ActiveTab,
};
_Title: {
type: null,
default: "卡片头部",
},
watch: {
_ActiveTab(val) {
this.isActive = val;
},
_More: {
type: null,
default: false,
},
methods: {
callBack() {
if (this._Src) {
this.$router.push({ path: this._Src });
}
},
tabsChange(index) {
this.isActive = index;
this.$emit("_Change", index);
},
_Size: {
type: Number,
default: 16,
},
};
_Src: {
type: null,
default: null,
},
_ActiveTab: {
type: Number,
default: 0,
},
});
const emit = defineEmits(["_Change"]);
const router = useRouter();
const isActive = ref(props._ActiveTab);
watch(
() => props._ActiveTab,
(val) => {
isActive.value = val;
}
);
function callBack() {
if (props._Src) {
router.push({ path: props._Src });
}
}
function tabsChange(index) {
isActive.value = index;
emit("_Change", index);
}
</script>
<style scoped lang="scss">