mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-03 20:24:58 +08:00
117 lines
2.4 KiB
Vue
117 lines
2.4 KiB
Vue
|
<template>
|
||
|
<div>
|
||
|
<el-dialog
|
||
|
v-bind="$attrs"
|
||
|
title="外部资源引用"
|
||
|
width="600px"
|
||
|
:close-on-click-modal="false"
|
||
|
v-on="$listeners"
|
||
|
@open="onOpen"
|
||
|
@close="onClose"
|
||
|
>
|
||
|
<el-input
|
||
|
v-for="(item, index) in resources"
|
||
|
:key="index"
|
||
|
v-model="resources[index]"
|
||
|
class="url-item"
|
||
|
placeholder="请输入 css 或 js 资源路径"
|
||
|
prefix-icon="el-icon-link"
|
||
|
clearable
|
||
|
>
|
||
|
<el-button
|
||
|
slot="append"
|
||
|
icon="el-icon-delete"
|
||
|
@click="deleteOne(index)"
|
||
|
/>
|
||
|
</el-input>
|
||
|
<el-button-group class="add-item">
|
||
|
<el-button
|
||
|
plain
|
||
|
@click="addOne('https://lib.baomitu.com/jquery/1.8.3/jquery.min.js')"
|
||
|
>
|
||
|
jQuery1.8.3
|
||
|
</el-button>
|
||
|
<el-button
|
||
|
plain
|
||
|
@click="addOne('https://unpkg.com/http-vue-loader')"
|
||
|
>
|
||
|
http-vue-loader
|
||
|
</el-button>
|
||
|
<el-button
|
||
|
icon="el-icon-circle-plus-outline"
|
||
|
plain
|
||
|
@click="addOne('')"
|
||
|
>
|
||
|
添加其他
|
||
|
</el-button>
|
||
|
</el-button-group>
|
||
|
<div slot="footer">
|
||
|
<el-button @click="close">
|
||
|
取消
|
||
|
</el-button>
|
||
|
<el-button
|
||
|
type="primary"
|
||
|
@click="handelConfirm"
|
||
|
>
|
||
|
确定
|
||
|
</el-button>
|
||
|
</div>
|
||
|
</el-dialog>
|
||
|
</div>
|
||
|
</template>
|
||
|
<script>
|
||
|
import { deepClone } from '@/utils/index'
|
||
|
|
||
|
export default {
|
||
|
components: {},
|
||
|
inheritAttrs: false,
|
||
|
props: ['originResource'],
|
||
|
data() {
|
||
|
return {
|
||
|
resources: null
|
||
|
}
|
||
|
},
|
||
|
computed: {},
|
||
|
watch: {},
|
||
|
created() {},
|
||
|
mounted() {},
|
||
|
methods: {
|
||
|
onOpen() {
|
||
|
this.resources = this.originResource.length ? deepClone(this.originResource) : ['']
|
||
|
},
|
||
|
onClose() {
|
||
|
},
|
||
|
close() {
|
||
|
this.$emit('update:visible', false)
|
||
|
},
|
||
|
handelConfirm() {
|
||
|
const results = this.resources.filter(item => !!item) || []
|
||
|
this.$emit('save', results)
|
||
|
this.close()
|
||
|
if (results.length) {
|
||
|
this.resources = results
|
||
|
}
|
||
|
},
|
||
|
deleteOne(index) {
|
||
|
this.resources.splice(index, 1)
|
||
|
},
|
||
|
addOne(url) {
|
||
|
if (this.resources.indexOf(url) > -1) {
|
||
|
this.$message('资源已存在')
|
||
|
} else {
|
||
|
this.resources.push(url)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
</script>
|
||
|
<style lang="scss" scoped>
|
||
|
.add-item{
|
||
|
margin-top: 8px;
|
||
|
}
|
||
|
.url-item{
|
||
|
margin-bottom: 12px;
|
||
|
}
|
||
|
</style>
|