Compare commits

..

No commits in common. "8a58e70fc6920c513e5ea4b9a023031ed5a70997" and "9601541628fb7051dfd852c5f189b61bcb9bb0d8" have entirely different histories.

69 changed files with 2329 additions and 3703 deletions

View File

@ -154,7 +154,7 @@
>详情</el-button >详情</el-button
> >
<el-button type="text" size="small" @click="showDocument(scope.row)" <el-button type="text" size="small" @click="showDocument(scope.row)"
>技术文档</el-button >开发文档</el-button
> >
<el-button <el-button
type="text" type="text"
@ -762,15 +762,11 @@ export default {
this.notFilled.push('部门联系人电话') this.notFilled.push('部门联系人电话')
} }
if (this.radio === '智能算法' && !this.submitFrom.apiUrl) { if (this.radio === '智能算法' && !this.submitFrom.apiUrl) {
if ((this.submitFrom.infoList.filter(val => val.attrType === '使用方式')[0].attrValue === '调用接口')) {
this.notFilled.push('服务接口') this.notFilled.push('服务接口')
} }
}
if (this.radio === '智能算法' && !this.submitFrom.apiMethodType) { if (this.radio === '智能算法' && !this.submitFrom.apiMethodType) {
if ((this.submitFrom.infoList.filter(val => val.attrType === '使用方式')[0].attrValue === '调用接口')) {
this.notFilled.push('接口请求方式') this.notFilled.push('接口请求方式')
} }
}
if (this.radio === '智能算法' && (!this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0].attrValue)) { if (this.radio === '智能算法' && (!this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0] || !this.submitFrom.infoList.filter(val => val.attrType === '算法类别')[0].attrValue)) {
this.notFilled.push('算法类别') this.notFilled.push('算法类别')
} }

View File

@ -271,7 +271,8 @@
v-if=" v-if="
item.attrType != '应用领域' && item.attrType != '应用领域' &&
item.attrType != '应用类型' && item.attrType != '应用类型' &&
item.attrType != '发布端' item.attrType != '发布端' &&
item.attrType != '应用状态'
" "
></el-input> ></el-input>
<el-select <el-select
@ -367,30 +368,30 @@
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
import dictionaries from '@/utils/dictionaries' import dictionaries from "@/utils/dictionaries";
import { mapState } from 'vuex' import { mapState } from "vuex";
import { getIconList } from '@/utils' import { getIconList } from "@/utils";
import Cookies from 'js-cookie' import Cookies from "js-cookie";
import upload from './upload.vue' import upload from "./upload.vue";
import bus from '@/views/bus.js' import bus from "@/views/bus.js";
import qs from 'qs' import qs from "qs";
import Vue from 'vue' import Vue from "vue";
export default { export default {
components: { components: {
upload upload,
}, },
data() { data() {
return { return {
checkList: [], checkList: [],
dialogVisibleImg: false, dialogVisibleImg: false,
previewImg: '', // previewImg: "", //
dialogVisible: false, dialogVisible: false,
fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload', fileUploadUrl: window.SITE_CONFIG.apiURL + "/upload",
uploadUrl: uploadUrl:
window.SITE_CONFIG.apiURL + window.SITE_CONFIG.apiURL +
'/sys/oss/upload?token=' + "/sys/oss/upload?token=" +
Cookies.get('ucsToken'), Cookies.get("ucsToken"),
companyArr: dictionaries.companyArr, companyArr: dictionaries.companyArr,
visible: false, visible: false,
sceneArr: dictionaries.sceneArr, sceneArr: dictionaries.sceneArr,
@ -402,579 +403,579 @@ export default {
menuListVisible: false, menuListVisible: false,
UpdateState: false, UpdateState: false,
dataForm: { dataForm: {
id: '', id: "",
deptId: '', deptId: "",
deptContacts: '', deptContacts: "",
deptPhone: '', deptPhone: "",
dataVolume: '', dataVolume: "",
shareCondition: '', shareCondition: "",
shareType: '', shareType: "",
shareMode: '', shareMode: "",
delFlag: 0, delFlag: 0,
description: '', description: "",
downloads: 0, downloads: 0,
image: '', image: "",
showList: [], showList: [],
infoList: [], infoList: [],
link: '', link: "",
name: '', name: "",
note1: '', note1: "",
note2: '', note2: "",
note3: '', note3: "",
note4: '', note4: "",
note5: '', note5: "",
score: '', score: "",
type: '应用资源', type: "应用资源",
apiMethodType: '', apiMethodType: "",
apiUrl: '', apiUrl: "",
visits: 0 visits: 0,
}, },
deptId: '', deptId: "",
fangwendizhi: '', fangwendizhi: "",
mingzi: '', mingzi: "",
dataFormUpdate: {}, dataFormUpdate: {},
dataFormShowDetails: {}, dataFormShowDetails: {},
infoList2: [], infoList2: [],
infoList3: [], infoList3: [],
typeOptions: [ typeOptions: [
{ value: '有条件共享', label: '有条件共享' }, { value: "有条件共享", label: "有条件共享" },
{ value: '无条件共享', label: '无条件共享' } { value: "无条件共享", label: "无条件共享" },
], ],
conditionOptions: [ conditionOptions: [
{ value: '申请', label: '申请' }, { value: "申请", label: "申请" },
{ value: '免批申请', label: '免批申请' } { value: "免批申请", label: "免批申请" },
], ],
rules: { rules: {
name: [ name: [
{ {
required: true, required: true,
message: '请输入应用名称', message: "请输入应用名称",
trigger: 'change' trigger: "change",
} },
], ],
description: [ description: [
{ {
required: true, required: true,
message: '请输入应用描述', message: "请输入应用描述",
trigger: 'change' trigger: "change",
} },
], ],
deptContacts: [ deptContacts: [
{ {
required: true, required: true,
message: '请输入部门联系人', message: "请输入部门联系人",
trigger: 'change' trigger: "change",
} },
], ],
deptPhone: [ deptPhone: [
{ {
required: true, required: true,
message: '请输入部门联系人电话', message: "请输入部门联系人电话",
trigger: 'change' trigger: "change",
} },
], ],
shareCondition: [ shareCondition: [
{ {
required: true, required: true,
message: '请选择共享条件', message: "请选择共享条件",
trigger: 'change' trigger: "change",
} },
], ],
shareType: [ shareType: [
{ {
required: true, required: true,
message: '请选择请输入共享类型', message: "请选择请输入共享类型",
trigger: 'change' trigger: "change",
} },
], ],
shareMode: [ shareMode: [
{ {
required: true, required: true,
message: '请输入共享方式', message: "请输入共享方式",
trigger: 'change' trigger: "change",
} },
] ],
} },
} };
}, },
props: { props: {
disabled: { disabled: {
type: Boolean, type: Boolean,
default: false default: false,
} },
}, },
computed: { computed: {
...mapState(['catalogueTree']), ...mapState(["catalogueTree"]),
...mapState(['departmentSelects']), ...mapState(["departmentSelects"]),
dataRule() { dataRule() {
return { return {
name: [ name: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
version: [ version: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
visitUrl: [ visitUrl: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
type: [ type: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
shareType: [ shareType: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
shareForm: [ shareForm: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
field: [ field: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
scene: [ scene: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
deptId: [ deptId: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
content: [ content: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
rank: [ rank: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
useInfo: [ useInfo: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
remarks: [ remarks: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
], ],
isUp: [ isUp: [
{ {
required: true, required: true,
message: this.$t('validate.required'), message: this.$t("validate.required"),
trigger: 'blur' trigger: "blur",
} },
] ],
} };
} },
}, },
methods: { methods: {
// //
handleAvatarSuccess(res, file) { handleAvatarSuccess(res, file) {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error('上传图片失败') return this.$message.error("上传图片失败");
} }
debugger debugger;
this.dataForm.infoList.map((item, index) => { this.dataForm.infoList.map((item, index) => {
if (item.attrType == '应用图片') { if (item.attrType == "应用图片") {
if (!this.dataForm.infoList[index].attrValue) { if (!this.dataForm.infoList[index].attrValue) {
this.dataForm.infoList[index].attrValue = res.data this.dataForm.infoList[index].attrValue = res.data;
} else { } else {
this.dataForm.infoList[index].attrValue += ';' + res.data this.dataForm.infoList[index].attrValue += ";" + res.data;
} }
console.log('上传图片', this.dataForm.infoList[index]) console.log("上传图片", this.dataForm.infoList[index]);
} }
}) });
// this.imageUrl = URL.createObjectURL(file.raw); // this.imageUrl = URL.createObjectURL(file.raw);
}, },
handleAvatarSuccessone(res, file) { handleAvatarSuccessone(res, file) {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error('上传图片失败') return this.$message.error("上传图片失败");
} }
debugger debugger;
this.dataForm.infoList.map((item, index) => { this.dataForm.infoList.map((item, index) => {
if (item.attrType == '子系统一图片') { if (item.attrType == "子系统一图片") {
if (!this.dataForm.infoList[index].attrValue) { if (!this.dataForm.infoList[index].attrValue) {
this.dataForm.infoList[index].attrValue = res.data this.dataForm.infoList[index].attrValue = res.data;
} else { } else {
this.dataForm.infoList[index].attrValue = '' this.dataForm.infoList[index].attrValue = "";
this.dataForm.infoList[index].attrValue = res.data this.dataForm.infoList[index].attrValue = res.data;
} }
console.log('上传图片', this.dataForm.infoList[index]) console.log("上传图片", this.dataForm.infoList[index]);
} }
}) });
// this.imageUrl = URL.createObjectURL(file.raw); // this.imageUrl = URL.createObjectURL(file.raw);
}, },
handleAvatarSuccesstwo(res, file) { handleAvatarSuccesstwo(res, file) {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error('上传图片失败') return this.$message.error("上传图片失败");
} }
debugger debugger;
this.dataForm.infoList.map((item, index) => { this.dataForm.infoList.map((item, index) => {
if (item.attrType == '子系统二图片') { if (item.attrType == "子系统二图片") {
if (!this.dataForm.infoList[index].attrValue) { if (!this.dataForm.infoList[index].attrValue) {
this.dataForm.infoList[index].attrValue = res.data this.dataForm.infoList[index].attrValue = res.data;
} else { } else {
this.dataForm.infoList[index].attrValue = '' this.dataForm.infoList[index].attrValue = "";
this.dataForm.infoList[index].attrValue = res.data this.dataForm.infoList[index].attrValue = res.data;
} }
console.log('上传图片', this.dataForm.infoList[index]) console.log("上传图片", this.dataForm.infoList[index]);
} }
}) });
// this.imageUrl = URL.createObjectURL(file.raw); // this.imageUrl = URL.createObjectURL(file.raw);
}, },
handleAvatarSuccessthree(res, file) { handleAvatarSuccessthree(res, file) {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error('上传图片失败') return this.$message.error("上传图片失败");
} }
debugger debugger;
this.dataForm.infoList.map((item, index) => { this.dataForm.infoList.map((item, index) => {
if (item.attrType == '子系统三图片') { if (item.attrType == "子系统三图片") {
if (!this.dataForm.infoList[index].attrValue) { if (!this.dataForm.infoList[index].attrValue) {
this.dataForm.infoList[index].attrValue = res.data this.dataForm.infoList[index].attrValue = res.data;
} else { } else {
this.dataForm.infoList[index].attrValue = '' this.dataForm.infoList[index].attrValue = "";
this.dataForm.infoList[index].attrValue = res.data this.dataForm.infoList[index].attrValue = res.data;
} }
console.log('上传图片', this.dataForm.infoList[index]) console.log("上传图片", this.dataForm.infoList[index]);
} }
}) });
// this.imageUrl = URL.createObjectURL(file.raw); // this.imageUrl = URL.createObjectURL(file.raw);
}, },
beforeAvatarUpload(file) { beforeAvatarUpload(file) {
const isImage = const isImage =
file.type === 'image/jpeg' || file.type === "image/jpeg" ||
file.type === 'image/jpg' || file.type === "image/jpg" ||
file.type === 'image/png' file.type === "image/png";
const isLt2M = file.size / 1024 / 1024 < 9999 const isLt2M = file.size / 1024 / 1024 < 9999;
if (!isImage) { if (!isImage) {
this.$message.error('上传头像图片只能是 JPG 格式!') this.$message.error("上传头像图片只能是 JPG 格式!");
} }
if (!isLt2M) { if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!') this.$message.error("上传头像图片大小不能超过 2MB!");
} }
return isImage && isLt2M return isImage && isLt2M;
}, },
addUploadRemoveFile(file, fileList) { addUploadRemoveFile(file, fileList) {
this.$refs.addUpload.clearFiles() this.$refs.addUpload.clearFiles();
this.addDataFrom.imageUrl = '' this.addDataFrom.imageUrl = "";
}, },
showView(file) { showView(file) {
this.previewImg = file.url this.previewImg = file.url;
this.dialogVisibleImg = true this.dialogVisibleImg = true;
}, },
// //
getUserInfo() { getUserInfo() {
this.$http.get('/sys/user/info').then(({ data: res }) => { this.$http.get("/sys/user/info").then(({ data: res }) => {
this.dataForm.deptId = res.data.deptId this.dataForm.deptId = res.data.deptId;
this.deptId = res.data.deptId this.deptId = res.data.deptId;
console.log('depid', this.dataForm) console.log("depid", this.dataForm);
}) });
}, },
guanbi() { guanbi() {
this.dataForm = { this.dataForm = {
id: '', id: "",
deptId: '', deptId: "",
deptContacts: '', deptContacts: "",
deptPhone: '', deptPhone: "",
dataVolume: '', dataVolume: "",
shareCondition: '', shareCondition: "",
shareType: '', shareType: "",
shareMode: '', shareMode: "",
delFlag: 0, delFlag: 0,
description: '', description: "",
downloads: 0, downloads: 0,
image: '', image: "",
showList: [], showList: [],
infoList: [], infoList: [],
link: '', link: "",
name: '', name: "",
note1: '', note1: "",
note2: '', note2: "",
note3: '', note3: "",
note4: '', note4: "",
note5: '', note5: "",
score: '', score: "",
type: '应用资源', type: "应用资源",
apiMethodType: '', apiMethodType: "",
apiUrl: '', apiUrl: "",
visits: 0 visits: 0,
} };
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log(file, fileList) console.log(file, fileList);
}, },
handlePictureCardPreview(file) { handlePictureCardPreview(file) {
this.dialogImageUrl = file.url this.dialogImageUrl = file.url;
this.dialogVisible = true this.dialogVisible = true;
}, },
// //
uploadBeforeUploadHandle(file) { uploadBeforeUploadHandle(file) {
if ( if (
file.type !== 'image/jpg' && file.type !== "image/jpg" &&
file.type !== 'image/jpeg' && file.type !== "image/jpeg" &&
file.type !== 'image/png' && file.type !== "image/png" &&
file.type !== 'image/gif' file.type !== "image/gif"
) { ) {
this.$message.error('只支持jpg、png、gif格式的图片') this.$message.error("只支持jpg、png、gif格式的图片");
return false return false;
} }
}, },
imgUploadSuccess(res, file, fileList) { imgUploadSuccess(res, file, fileList) {
console.log('zzzzzzz', res, file, fileList) console.log("zzzzzzz", res, file, fileList);
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
}, },
init() { init() {
this.getInfoList() this.getInfoList();
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.dataForm && this.$refs.dataForm.resetFields() this.$refs.dataForm && this.$refs.dataForm.resetFields();
this.iconList = getIconList() this.iconList = getIconList();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) });
}, },
// //
getInfoList() { getInfoList() {
const parms = { const parms = {
topCategoryName: '应用资源' topCategoryName: "应用资源",
} };
this.infoList2 = [] this.infoList2 = [];
this.$http this.$http
.get('/category/getAllFiledByTopCategory' + '?' + qs.stringify(parms)) .get("/category/getAllFiledByTopCategory" + "?" + qs.stringify(parms))
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
res.data.map((item, index) => { res.data.map((item, index) => {
if ( if (
item.name.search('应用名称') == -1 && item.name.search("应用名称") == -1 &&
item.name.search('地址') == -1 && item.name.search("地址") == -1 &&
// item.name.search("") == -1 && // item.name.search("") == -1 &&
item.name !== '组件描述' && item.name !== "组件描述" &&
item.name !== '组件名称' && item.name !== "组件名称" &&
item.name !== '服务接口' && item.name !== "服务接口" &&
item.name !== '共享类型' && item.name !== "共享类型" &&
item.name !== '共享条件' && item.name !== "共享条件" &&
item.name !== '共享方式' && item.name !== "共享方式" &&
item.name !== '部门联系人电话' && item.name !== "部门联系人电话" &&
item.name !== '部门统一社会代码' && item.name !== "部门统一社会代码" &&
item.name !== '部门联系人' && item.name !== "部门联系人" &&
item.name !== '服务商统一社会信用代码' && item.name !== "服务商统一社会信用代码" &&
item.name !== '服务接口请求方式' && item.name !== "服务接口请求方式" &&
item.name !== '部门名称' item.name !== "部门名称"
) { ) {
const duixiang = { const duixiang = {
attrType: item.name, attrType: item.name,
attrValue: '', attrValue: "",
delFlag: 0 delFlag: 0,
} };
this.infoList2.push(item) this.infoList2.push(item);
if (item.isLinkToDic != 'false') { if (item.isLinkToDic != "false") {
const xinxi = { const xinxi = {
page: 1, page: 1,
limit: 99, limit: 99,
dictTypeId: item.linkValue, dictTypeId: item.linkValue,
dictLabel: '', dictLabel: "",
dictValue: '' dictValue: "",
} };
this.$http this.$http
.get('/sys/dict/data/page' + '?' + qs.stringify(xinxi)) .get("/sys/dict/data/page" + "?" + qs.stringify(xinxi))
.then(({ data: res2 }) => { .then(({ data: res2 }) => {
// this.infoList2[index - 1].children = res2.data.list // this.infoList2[index - 1].children = res2.data.list
this.infoList2.map((item3, index3) => { this.infoList2.map((item3, index3) => {
if (item3.name == item.name) { if (item3.name == item.name) {
Vue.set( Vue.set(
this.infoList2[index3], this.infoList2[index3],
'children', "children",
res2.data.list res2.data.list
) );
} }
}) });
this.dataFormUpdate.infoList.map((item3, index3) => { this.dataFormUpdate.infoList.map((item3, index3) => {
if (item3.attrType == item.name) { if (item3.attrType == item.name) {
Vue.set( Vue.set(
this.dataFormUpdate.infoList[index3], this.dataFormUpdate.infoList[index3],
'children', "children",
res2.data.list res2.data.list
) );
} }
}) });
console.log( console.log(
'11111111111111111111111111110', "11111111111111111111111111110",
this.dataFormUpdate this.dataFormUpdate
) );
}) });
} }
this.dataForm.infoList.push(duixiang) this.dataForm.infoList.push(duixiang);
} }
});
console.log("this.infoList", this.dataFormUpdate);
}) })
console.log('this.infoList', this.dataFormUpdate) .catch(() => {});
})
.catch(() => {})
this.$http this.$http
.get('/sys/dict/data/page' + '?' + qs.stringify(parms)) .get("/sys/dict/data/page" + "?" + qs.stringify(parms))
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
console.log('this.infoList', this.dataForm) console.log("this.infoList", this.dataForm);
}) })
.catch(() => {}) .catch(() => {});
}, },
// , // ,
iconListCurrentChangeHandle(icon) { iconListCurrentChangeHandle(icon) {
this.dataForm.imgurl = icon this.dataForm.imgurl = icon;
this.iconListVisible = false this.iconListVisible = false;
}, },
// , // ,
menuListTreeCurrentChangeHandle(data) { menuListTreeCurrentChangeHandle(data) {
this.dataForm.pid = data.id this.dataForm.pid = data.id;
this.dataForm.type = data.name this.dataForm.type = data.name;
this.menuListVisible = false this.menuListVisible = false;
}, },
// , // ,
deptListTreeSetDefaultHandle() { deptListTreeSetDefaultHandle() {
this.dataForm.pid = '0' this.dataForm.pid = "0";
this.dataForm.type = '目录级别' this.dataForm.type = "目录级别";
}, },
// //
getInfo() { getInfo() {
this.$http this.$http
.get('/ability/bsabilityai/' + this.dataForm.id) .get("/ability/bsabilityai/" + this.dataForm.id)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.dataForm = { this.dataForm = {
...this.dataForm, ...this.dataForm,
...res.data ...res.data,
} };
}) })
.catch(() => {}) .catch(() => {});
}, },
// //
dataFormSubmitHandle: debounce( dataFormSubmitHandle: debounce(
function () { function () {
this.$refs.dataForm.validate((valid) => { this.$refs.dataForm.validate((valid) => {
this.getUserInfo() this.getUserInfo();
this.dataForm.deptId = this.deptId this.dataForm.deptId = this.deptId;
if (!valid) { if (!valid) {
this.$message.error('请检查表单是否填写完整') this.$message.error("请检查表单是否填写完整");
return false return false;
} }
console.log('表单数据=======================》', this.dataForm) console.log("表单数据=======================》", this.dataForm);
if (!this.UpdateState) { if (!this.UpdateState) {
this.dataForm.infoList = [] this.dataForm.infoList = [];
this.dataForm.showListAll.forEach((val) => { this.dataForm.showListAll.forEach((val) => {
if (val.name !== '必填信息') { if (val.name !== "必填信息") {
if (val.name === '服务接口信息') { if (val.name === "服务接口信息") {
val.children.forEach((item) => { val.children.forEach((item) => {
if (item.name === '服务接口') { if (item.name === "服务接口") {
this.dataForm.apiUrl = item.note1 this.dataForm.apiUrl = item.note1;
} }
if (item.name === '接口请求方式') { if (item.name === "接口请求方式") {
this.dataForm.apiMethodType = item.note1 this.dataForm.apiMethodType = item.note1;
} }
if (item.name === '访问地址') { if (item.name === "访问地址") {
this.dataForm.link = item.note1 this.dataForm.link = item.note1;
} }
}) });
} else { } else {
val.children.forEach((item) => { val.children.forEach((item) => {
this.dataForm.infoList.push({ this.dataForm.infoList.push({
attrType: item.name, attrType: item.name,
attrValue: item.note1, attrValue: item.note1,
delFlag: 0 delFlag: 0,
}) });
}) });
} }
} }
}) });
this.$http this.$http
.post('/resource/insert?source= b', this.dataForm) .post("/resource/insert?source= b", this.dataForm)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t("prompt.success"),
type: 'success', type: "success",
duration: 500, duration: 500,
onClose: () => { onClose: () => {
this.visible = false this.visible = false;
this.$emit('refreshDataList') this.$emit("refreshDataList");
} },
});
}) })
}) .catch(() => {});
.catch(() => {})
} else { } else {
this.$http this.$http
.put('/resource/update', this.dataFormUpdate) .put("/resource/update", this.dataFormUpdate)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t("prompt.success"),
type: 'success', type: "success",
duration: 500, duration: 500,
onClose: () => { onClose: () => {
this.visible = false this.visible = false;
this.$emit('refreshDataList') this.$emit("refreshDataList");
},
});
})
.catch(() => {});
} }
}) });
})
.catch(() => {})
}
})
}, },
1000, 1000,
{ leading: true, trailing: false } { leading: true, trailing: false }
@ -982,22 +983,22 @@ export default {
showListChagne() { showListChagne() {
this.dataForm.showList = this.dataForm.showListAll.filter( this.dataForm.showList = this.dataForm.showListAll.filter(
(item) => this.checkList.indexOf(item.name) > -1 (item) => this.checkList.indexOf(item.name) > -1
) );
console.log( console.log(
'属性变更===================>', "属性变更===================>",
this.checkList, this.checkList,
this.dataForm.showList, this.dataForm.showList,
this.dataForm.showListAll this.dataForm.showListAll
) );
} },
}, },
mounted() { mounted() {
this.getUserInfo() this.getUserInfo();
}, },
beforeDestroy() { beforeDestroy() {
console.log('销毁~~~~~~~~~~~~~~~~~~~~') console.log("销毁~~~~~~~~~~~~~~~~~~~~");
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -149,7 +149,7 @@
>详情</el-button >详情</el-button
> >
<el-button type="text" size="small" @click="showDocument(scope.row)" <el-button type="text" size="small" @click="showDocument(scope.row)"
>技术文档</el-button >开发文档</el-button
> >
<el-button <el-button
type="text" type="text"
@ -233,7 +233,7 @@ export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data () {
return { return {
required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '应用名称', '应用描述', '应用类型'], required: ['归属部门', '部门联系人', '部门联系人电话', '应用领域', '共享条件', '应用名称', '应用描述', '应用状态', '应用类型'],
notFilled: [], notFilled: [],
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/resource/page', getDataListURL: '/resource/page',
@ -692,9 +692,9 @@ export default {
if (!this.submitFrom.infoList.filter(val => val.attrType == '应用领域')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用领域')[0].attrValue) { if (!this.submitFrom.infoList.filter(val => val.attrType == '应用领域')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用领域')[0].attrValue) {
this.notFilled.push('应用领域') this.notFilled.push('应用领域')
} }
// if (!this.submitFrom.infoList.filter(val => val.attrType == '')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '')[0].attrValue) { if (!this.submitFrom.infoList.filter(val => val.attrType == '应用状态')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用状态')[0].attrValue) {
// this.notFilled.push('') this.notFilled.push('应用状态')
// } }
if (!this.submitFrom.infoList.filter(val => val.attrType == '应用类型')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用类型')[0].attrValue) { if (!this.submitFrom.infoList.filter(val => val.attrType == '应用类型')[0] || !this.submitFrom.infoList.filter(val => val.attrType == '应用类型')[0].attrValue) {
this.notFilled.push('应用类型') this.notFilled.push('应用类型')
} }

View File

@ -64,55 +64,25 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 流程综合组件 --> <!-- 流程综合组件 -->
<!-- <ren-process-multiple <ren-process-multiple
v-if="processVisible" v-if="processVisible"
updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId" updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId"
saveFormUrl="/processForm/tabilityapplication" saveFormUrl="/processForm/tabilityapplication"
dataFormName="dataForm" dataFormName="dataForm"
ref="renProcessMultiple" ref="renProcessMultiple"
></ren-process-multiple> --> ></ren-process-multiple>
<!-- 审批 -->
<div class="agreeOr" v-if="taskId">
<div>
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('拒绝')"
>驳回</el-button
>
</div>
</div>
<!-- 审批弹窗 -->
<el-dialog
title="审批意见"
:close-on-click-modal="false"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose2"> </el-button>
<el-button
type="primary"
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
> </el-button
>
</span>
</el-dialog>
</el-card> </el-card>
</template> </template>
<script> <script>
// //
import processModule from '@/mixins/process-module' import processModule from '@/mixins/process-module'
import qs from 'qs'
import debounce from 'lodash/debounce'
import bus from '@/views/bus.js'
export default { export default {
// //
mixins: [processModule], mixins: [processModule],
data () { data () {
return { return {
// visible: false, visible: false,
// //
fieldDisabled: false, fieldDisabled: false,
dataForm: { dataForm: {
@ -124,13 +94,7 @@ export default {
system: '', system: '',
scene: '', scene: '',
basis: '' basis: ''
}, }
//
dialogVisible: false,
dialogType: '',
input: '',
visible: true,
taskId: ''
} }
}, },
created () { created () {
@ -149,8 +113,6 @@ export default {
} }
// //
this.initProcessMultiple(callbacks) this.initProcessMultiple(callbacks)
this.taskId = this.$route.params.taskId
this.dataForm.taskId = this.$route.params.taskId
}, },
computed: { computed: {
dataRule () { dataRule () {
@ -202,128 +164,6 @@ export default {
}) })
.catch(() => {}) .catch(() => {})
}, },
//
showDialog (title) {
this.dialogVisible = true
this.dialogType = title
},
handleClose (done) {
this.$confirm('确认关闭?')
.then((_) => {
this.input = ''
done()
})
.catch((_) => {})
},
handleClose2 () {
this.dialogVisible = false
this.input = ''
},
// 退
agreeOrNot: debounce(
function (data) {
this.dataForm.taskId = this.$route.params.taskId
if (this.dialogType === '同意') {
if (this.input !== '') {
console.log('this.dataForm', this.dataForm)
const params = qs.stringify({
taskId: this.dataForm.taskId,
comment: this.input
})
console.log(params)
this.$http
.post('/act/task/complete?' + params)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res)
}
return
}
bus.$emit('AbilityResourcesRemovedInit')
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.dialogVisible = false
if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
}
}
})
})
.catch(() => {})
this.tabRemoveHandle(data)
} else {
this.$message.error('请输入审批意见!')
}
} else if (this.dialogType === '拒绝') {
if (this.input !== '') {
const params = qs.stringify({
taskId: this.dataForm.taskId,
comment: this.input
})
this.$http
.post('/act/task/backToFirst?', params)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res)
}
return
}
bus.$emit('AbilityResourcesRemovedInit')
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
}
}
})
})
this.tabRemoveHandle(data)
} else {
this.$message.error('请输入审批意见!')
}
}
},
1000,
{ leading: true, trailing: false }
),
tabRemoveHandle (tabName) {
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
if (tabName === 'home') {
return false
}
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name !== tabName
)
if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName =
this.$store.state.contentTabsActiveName = 'home'
return false
}
// tab
if (tabName === this.$store.state.contentTabsActiveName) {
const tab =
this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1
]
this.$router.push({
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
params: { ...tab.params },
query: { ...tab.query }
})
}
},
// //
startProcessErrorCallback (data) { startProcessErrorCallback (data) {
console.log(data) console.log(data)
@ -333,12 +173,3 @@ export default {
} }
} }
</script> </script>
<style lang="scss">
.agreeOr {
& > div {
// text-align: right;
padding-right: 40px;
margin: 20px 0;
}
}
</style>

View File

@ -7,65 +7,28 @@
@keyup.enter.native="dataFormSubmitHandle()" @keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : 'auto'" :label-width="$i18n.locale === 'en-US' ? '120px' : 'auto'"
> >
<el-tooltip placement="bottom" :content="dataForm.comment">
<template #title>
<span>{{ dataForm.comment }}</span>
</template>
<el-form-item label="评论内容"> <el-form-item label="评论内容">
<el-input <el-input
type="textarea"
v-model="dataForm.comment" v-model="dataForm.comment"
:disabled="fieldDisabled" :disabled="fieldDisabled"
placeholder="评论内容" placeholder="评论内容"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-tooltip>
</el-form> </el-form>
</div> </div>
<!-- 流程综合组件 --> <!-- 流程综合组件 -->
<!-- <ren-process-multiple <ren-process-multiple
v-if="processVisible" v-if="processVisible"
updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId" updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId"
saveFormUrl="/processForm/tabilityapplication" saveFormUrl="/processForm/tabilityapplication"
dataFormName="dataForm" dataFormName="dataForm"
ref="renProcessMultiple" ref="renProcessMultiple"
></ren-process-multiple> --> ></ren-process-multiple>
<!-- 审批 -->
<div class="agreeOr" v-if="taskId">
<div>
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('拒绝')"
>驳回</el-button
>
</div>
</div>
<!-- 审批弹窗 -->
<el-dialog
title="审批意见"
:close-on-click-modal="false"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose2"> </el-button>
<el-button
type="primary"
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
> </el-button
>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import processModule from '@/mixins/process-module' import processModule from '@/mixins/process-module'
import qs from 'qs'
import debounce from 'lodash/debounce'
import bus from '@/views/bus.js'
export default { export default {
// //
mixins: [processModule], mixins: [processModule],
@ -81,19 +44,12 @@ export default {
data () { data () {
return { return {
// processVisible: true, // processVisible: true,
// visible: false, visible: false,
// //
fieldDisabled: false, fieldDisabled: false,
dataForm: [], dataForm: [],
id: '', id: '',
shifoushizujian: true, shifoushizujian: true
//
dialogVisible: false,
dialogType: '',
input: '',
visible: true,
taskId: ''
} }
}, },
watch: {}, watch: {},
@ -129,128 +85,6 @@ export default {
// } // }
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
}) })
},
//
showDialog (title) {
this.dialogVisible = true
this.dialogType = title
},
handleClose (done) {
this.$confirm('确认关闭?')
.then((_) => {
this.input = ''
done()
})
.catch((_) => {})
},
handleClose2 () {
this.dialogVisible = false
this.input = ''
},
// 退
agreeOrNot: debounce(
function (data) {
this.dataForm.taskId = this.$route.params.taskId
if (this.dialogType === '同意') {
if (this.input !== '') {
console.log('this.dataForm', this.dataForm)
const params = qs.stringify({
taskId: this.dataForm.taskId,
comment: this.input
})
console.log(params)
this.$http
.post('/act/task/complete?' + params)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res)
}
return
}
bus.$emit('AbilityResourcesRemovedInit')
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.dialogVisible = false
if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
}
}
})
})
.catch(() => {})
this.tabRemoveHandle(data)
} else {
this.$message.error('请输入审批意见!')
}
} else if (this.dialogType === '拒绝') {
if (this.input !== '') {
const params = qs.stringify({
taskId: this.dataForm.taskId,
comment: this.input
})
this.$http
.post('/act/task/backToFirst?', params)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) {
this.callbacks.taskHandleErrorCallback(res)
}
return
}
bus.$emit('AbilityResourcesRemovedInit')
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
if (this.callbacks.taskHandleSuccessCallback) {
this.callbacks.taskHandleSuccessCallback(res)
}
}
})
})
this.tabRemoveHandle(data)
} else {
this.$message.error('请输入审批意见!')
}
}
},
1000,
{ leading: true, trailing: false }
),
tabRemoveHandle (tabName) {
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
if (tabName === 'home') {
return false
}
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name !== tabName
)
if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName =
this.$store.state.contentTabsActiveName = 'home'
return false
}
// tab
if (tabName === this.$store.state.contentTabsActiveName) {
const tab =
this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1
]
this.$router.push({
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
params: { ...tab.params },
query: { ...tab.query }
})
}
} }
}, },
created () { created () {
@ -268,8 +102,6 @@ export default {
} }
// //
this.initProcessMultiple(callbacks) this.initProcessMultiple(callbacks)
this.taskId = this.$route.params.taskId
this.dataForm.taskId = this.$route.params.taskId
}, },
mounted () {} mounted () {}
} }
@ -278,17 +110,6 @@ export default {
.kuandukuandukuandu{ .kuandukuandukuandu{
max-width:1500px; max-width:1500px;
} }
.agreeOr { .wrapper {
& > div {
// text-align: right;
padding-right: 40px;
margin: 20px 0;
}
}
</style>
<style lang="scss" scoped>
::v-deep .el-textarea__inner {
height: 100px;
resize: none;
} }
</style> </style>

View File

@ -106,7 +106,7 @@
</el-radio-group> --> </el-radio-group> -->
<el-button type="primary" @click="showDialog('同意')">同意</el-button> <el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('拒绝')" <el-button type="danger" plain @click="showDialog('拒绝')"
>驳回</el-button >拒绝</el-button
> >
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input> <!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input> <el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
@ -229,7 +229,6 @@ export default {
function (data) { function (data) {
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
if (this.dialogType === '同意') { if (this.dialogType === '同意') {
if (this.input !== '') {
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
@ -261,12 +260,7 @@ export default {
}) })
}) })
.catch(() => {}) .catch(() => {})
this.tabRemoveHandle(data)
} else {
this.$message.error('请输入审批意见!')
}
} else if (this.dialogType === '拒绝') { } else if (this.dialogType === '拒绝') {
if (this.input !== '') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
comment: this.input comment: this.input
@ -294,11 +288,9 @@ export default {
} }
}) })
}) })
}
this.tabRemoveHandle(data) this.tabRemoveHandle(data)
} else { // this.getDataList(data)
this.$message.error('请输入审批意见!')
}
}
}, },
1000, 1000,
{ leading: true, trailing: false } { leading: true, trailing: false }

View File

@ -136,7 +136,15 @@ export default {
return this.$message.error(this.$t('task.detailError')) return this.$message.error(this.$t('task.detailError'))
} }
this.getProcDefRouteSet(row, this.forwardDetail) this.getProcDefRouteSet(row, this.forwardDetail)
},
methodsThree () {
this.$http.get('/category/getCategoryTree').then((res) => {
localStorage.setItem('getCategoryTree', JSON.stringify(res.data.data))
})
} }
},
mounted () {
this.methodsThree()
} }
} }
</script> </script>

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="wrapper"> <div class="wrapper">
<el-form :model="dataView"> <el-form>
<div v-for="(item, index) in dataView.children" :key="item"> <div v-for="(item, index) in dataView.children" :key="item">
<!-- <div class="dataTitle">{{ item.name }}</div> --> <!-- <div class="dataTitle">{{ item.name }}</div> -->
<div v-for="itemson in item.children" :key="itemson.name"> <div v-for="itemson in item.children" :key="itemson.name">
@ -234,8 +234,68 @@ export default {
if (item) { if (item) {
this.dataList = item this.dataList = item
} }
}
}, },
insertList (val) { computed: {},
methods: {
videoAndImg (link) {
if (link) {
window.open(link)
} else {
this.$message({
message: '未上传',
type: 'warning'
})
}
},
deptName () {
console.log(this.dataForm.deptId)
this.$http
.get(`/sys/dept/${this.dataForm.deptId}`)
.then(({ data: res }) => {
console.log(res.data.name, 'res')
this.unit = res.data.name
})
},
queryPartAppByKeyIdFunction (index, indexSon, indexSonSon) {
if (this.dataForm.type === '组件服务') {
this.$http
.get(
'/dataResourceRel/queryApp4PartByKeyId' +
'?keyId=' +
this.dataForm.id
)
.then(({ data: res }) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 = ''
res.data.map((item) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 += item.name + ';'
})
})
} else {
this.$http
.get(
'/dataResourceRel/queryPart4AppByKeyId?keyId=' +
this.dataForm.id +
'&type=' +
'组件服务'
)
.then(({ data: res }) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 = ''
res.data.map((item) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 += item.name + ';'
})
})
}
},
insertListFunction (val) {
if (val) { if (val) {
if (this.dataForm.type === '应用资源') { if (this.dataForm.type === '应用资源') {
this.dataView = val.filter( this.dataView = val.filter(
@ -423,69 +483,10 @@ export default {
} }
} }
}, },
computed: {},
methods: {
videoAndImg (link) {
if (link) {
window.open(link)
} else {
this.$message({
message: '未上传',
type: 'warning'
})
}
},
deptName () {
console.log(this.dataForm.deptId)
this.$http
.get(`/sys/dept/${this.dataForm.deptId}`)
.then(({ data: res }) => {
console.log(res.data.name, 'res')
this.unit = res.data.name
})
},
queryPartAppByKeyIdFunction (index, indexSon, indexSonSon) {
if (this.dataForm.type === '组件服务') {
this.$http
.get(
'/dataResourceRel/queryApp4PartByKeyId' +
'?keyId=' +
this.dataForm.id
)
.then(({ data: res }) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 = ''
res.data.map((item) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 += item.name + ';'
})
})
} else {
this.$http
.get(
'/dataResourceRel/queryPart4AppByKeyId?keyId=' +
this.dataForm.id +
'&type=' +
'组件服务'
)
.then(({ data: res }) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 = ''
res.data.map((item) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 += item.name + ';'
})
})
}
}
},
created () {}, created () {},
mounted () { mounted () {
this.deptName() this.deptName()
this.insertListFunction(this.insertList)
} }
} }
</script> </script>

View File

@ -135,16 +135,16 @@ export default {
this.init() this.init()
console.log('fromList', this.$router.currentRoute.params.businessKey) console.log('fromList', this.$router.currentRoute.params.businessKey)
// this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO // this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO
var callbacks = { // var callbacks = {
startProcessSuccessCallback: this.closeCurrentTab, // startProcessSuccessCallback: this.closeCurrentTab,
startProcessErrorCallback: this.startProcessErrorCallback, // startProcessErrorCallback: this.startProcessErrorCallback,
taskHandleSuccessCallback: this.closeCurrentTab, // taskHandleSuccessCallback: this.closeCurrentTab,
taskHandleErrorCallback: this.taskHandleErrorCallback, // taskHandleErrorCallback: this.taskHandleErrorCallback,
formSaveSuccessCallback: null, // formSaveSuccessCallback: null,
formSaveErrorCallback: null // formSaveErrorCallback: null
} // }
// // //
this.initProcessMultiple(callbacks) // this.initProcessMultiple(callbacks)
}, },
mounted () { mounted () {
const businessKey = this.$router.currentRoute.params.businessKey const businessKey = this.$router.currentRoute.params.businessKey
@ -180,9 +180,10 @@ export default {
this.input = '' this.input = ''
}, },
methodsThree () { methodsThree () {
this.$http.get('/category/getCategoryTree').then((res) => { // this.$http.get('/category/getCategoryTree').then((res) => {
this.insertList = res.data.data // this.insertList = res.data.data
}) // })
this.insertList = JSON.parse(localStorage.getItem('getCategoryTree'))
}, },
init () { init () {
this.visible = true this.visible = true
@ -200,7 +201,6 @@ export default {
agreeOrNot: debounce( agreeOrNot: debounce(
function (data) { function (data) {
if (this.dialogType === '同意') { if (this.dialogType === '同意') {
if (this.input !== '') {
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.taskId, taskId: this.taskId,
@ -233,12 +233,7 @@ export default {
}) })
}) })
.catch(() => {}) .catch(() => {})
this.tabRemoveHandle(data)
} else {
this.$message.error('请输入审批意见!')
}
} else if (this.dialogType === '驳回') { } else if (this.dialogType === '驳回') {
if (this.input !== '') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.taskId, taskId: this.taskId,
comment: this.input comment: this.input
@ -267,11 +262,8 @@ export default {
} }
}) })
}) })
}
this.tabRemoveHandle(data) this.tabRemoveHandle(data)
} else {
this.$message.error('请输入审批意见!')
}
}
}, },
1000, 1000,
{ leading: true, trailing: false } { leading: true, trailing: false }

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-29 15:59:51 * @Date: 2022-06-29 15:59:51
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-04 14:34:45 * @LastEditTime: 2022-07-28 17:23:05
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!-- 流程业务表单 --> <!-- 流程业务表单 -->
@ -55,7 +55,7 @@
></span ></span
> >
</p> </p>
<p v-if="dataForm.content.enclosure" class="lastP"> <p v-if="dataForm.content.enclosure">
<span> <span>
申请附件<span> 申请附件<span>
{{ dataForm.content.enclosure || '--' {{ dataForm.content.enclosure || '--'
@ -102,8 +102,8 @@
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button> <el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
</el-radio-group> --> </el-radio-group> -->
<el-button type="primary" @click="showDialog('同意')">同意</el-button> <el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('驳回')" <el-button type="danger" plain @click="showDialog('拒绝')"
>驳回</el-button >拒绝</el-button
> >
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input> <!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input> <el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
@ -291,7 +291,6 @@ export default {
if (val.cameraList) { if (val.cameraList) {
flag = true flag = true
obj.describe += val.system obj.describe += val.system
obj.describe += ''
} else { } else {
this.$http.get('/resource/' + val.resourceId).then((res1) => { this.$http.get('/resource/' + val.resourceId).then((res1) => {
// console.log(res1.data.data, '1111111111111111111111111111111111') // console.log(res1.data.data, '1111111111111111111111111111111111')
@ -381,7 +380,6 @@ export default {
agreeOrNot: debounce( agreeOrNot: debounce(
function (data) { function (data) {
if (this.dialogType === '同意') { if (this.dialogType === '同意') {
if (this.input !== '') {
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
@ -413,18 +411,13 @@ export default {
}) })
}) })
.catch(() => {}) .catch(() => {})
this.tabRemoveHandle(data) } else if (this.dialogType === '拒绝') {
} else {
this.$message.error('请输入审批意见!')
}
} else if (this.dialogType === '驳回') {
if (this.input !== '') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.dataForm.taskId, taskId: this.dataForm.taskId,
comment: this.input comment: this.input
}) })
this.$http this.$http
.post('/act/task/backToFirst?', params) .post('/act/task/endProcess?', params)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)
@ -446,11 +439,9 @@ export default {
} }
}) })
}) })
}
this.tabRemoveHandle(data) this.tabRemoveHandle(data)
} else { // this.getDataList(data)
this.$message.error('请输入审批意见!')
}
}
}, },
1000, 1000,
{ leading: true, trailing: false } { leading: true, trailing: false }
@ -519,7 +510,7 @@ export default {
width: 500px; width: 500px;
} }
} }
.lastP { p:last-of-type {
margin-top: 16px; margin-top: 16px;
width: 100%; width: 100%;
span { span {

View File

@ -1,110 +1,40 @@
<template> <template>
<el-dialog <el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
:visible.sync="visible" <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
:title="!dataForm.id ? $t('add') : $t('update')" <el-form-item prop="username" :label="$t('user.username')" auto-complete="new-password">
:close-on-click-modal="false" <el-input v-model="dataForm.username" :placeholder="$t('user.username')" auto-complete="new-password"></el-input>
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px"
>
<el-form-item
prop="username"
:label="$t('user.username')"
auto-complete="new-password"
>
<el-input
v-model="dataForm.username"
:placeholder="$t('user.username')"
auto-complete="new-password"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="deptName" :label="$t('user.deptName')"> <el-form-item prop="deptName" :label="$t('user.deptName')">
<ren-dept-tree <ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :dept-name.sync="dataForm.deptName"></ren-dept-tree>
v-model="dataForm.deptId"
:placeholder="$t('dept.title')"
:dept-name.sync="dataForm.deptName"
></ren-dept-tree>
</el-form-item> </el-form-item>
<el-form-item <el-form-item prop="password" :label="$t('user.password')" :class="{ 'is-required': !dataForm.id }" auto-complete="new-password" v-if="!dataForm.id">
prop="password" <el-input v-model="dataForm.password" type="password" :placeholder="$t('user.password')" auto-complete="new-password" @input="changeInput"></el-input>
:label="$t('user.password')"
:class="{ 'is-required': !dataForm.id }"
auto-complete="new-password"
v-if="!dataForm.id"
>
<el-input
v-model="dataForm.password"
type="password"
:placeholder="$t('user.password')"
auto-complete="new-password"
@input="changeInput"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item prop="confirmPassword" :label="$t('user.confirmPassword')" :class="{ 'is-required': !dataForm.id }" v-if="!dataForm.id">
prop="confirmPassword" <el-input v-model="dataForm.confirmPassword" type="password" :placeholder="$t('user.confirmPassword')"></el-input>
:label="$t('user.confirmPassword')"
:class="{ 'is-required': !dataForm.id }"
v-if="!dataForm.id"
>
<el-input
v-model="dataForm.confirmPassword"
type="password"
:placeholder="$t('user.confirmPassword')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="realName" :label="$t('user.realName')"> <el-form-item prop="realName" :label="$t('user.realName')">
<el-input <el-input v-model="dataForm.realName" :placeholder="$t('user.realName')"></el-input>
v-model="dataForm.realName"
:placeholder="$t('user.realName')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="gender" :label="$t('user.gender')"> <el-form-item prop="gender" :label="$t('user.gender')">
<ren-radio-group <ren-radio-group v-model="dataForm.gender" dict-type="gender"></ren-radio-group>
v-model="dataForm.gender"
dict-type="gender"
></ren-radio-group>
</el-form-item> </el-form-item>
<el-form-item prop="email" :label="$t('user.email')"> <el-form-item prop="email" :label="$t('user.email')">
<el-input <el-input v-model="dataForm.email" :placeholder="$t('user.email')"></el-input>
v-model="dataForm.email"
:placeholder="$t('user.email')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="mobile" :label="$t('user.mobile')"> <el-form-item prop="mobile" :label="$t('user.mobile')">
<el-input <el-input v-model="dataForm.mobile" :placeholder="$t('user.mobile')"></el-input>
v-model="dataForm.mobile"
:placeholder="$t('user.mobile')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item prop="roleIdList" :label="$t('user.roleIdList')" class="role-list">
prop="roleIdList" <el-select v-model="dataForm.roleIdList" multiple :placeholder="$t('user.roleIdList')">
:label="$t('user.roleIdList')" <el-option v-for="role in roleList" :key="role.id" :label="role.name" :value="role.id"></el-option>
class="role-list"
>
<el-select
v-model="dataForm.roleIdList"
multiple
:placeholder="$t('user.roleIdList')"
>
<el-option
v-for="role in roleList"
:key="role.id"
:label="role.name"
:value="role.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 所在岗位屏蔽掉bug729 --> <el-form-item prop="postIdList" :label="$t('user.postIdList')" class="role-list">
<!-- <el-form-item prop="postIdList" :label="$t('user.postIdList')" class="role-list">
<el-select v-model="dataForm.postIdList" multiple :placeholder="$t('user.postIdList')"> <el-select v-model="dataForm.postIdList" multiple :placeholder="$t('user.postIdList')">
<el-option v-for="post in postList" :key="post.id" :label="post.postName" :value="post.id"></el-option> <el-option v-for="post in postList" :key="post.id" :label="post.postName" :value="post.id"></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item>
<el-form-item prop="status" :label="$t('user.status')" size="mini"> <el-form-item prop="status" :label="$t('user.status')" size="mini">
<el-radio-group v-model="dataForm.status"> <el-radio-group v-model="dataForm.status">
<el-radio :label="0">{{ $t('user.status0') }}</el-radio> <el-radio :label="0">{{ $t('user.status0') }}</el-radio>
@ -114,9 +44,7 @@
</el-form> </el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ <el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
$t('confirm')
}}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
@ -165,22 +93,8 @@ export default {
const low = /^.*[a-z]+.*/ const low = /^.*[a-z]+.*/
const up = /^.*[A-Z]+.*/ const up = /^.*[A-Z]+.*/
const spe = /^.*[^a-zA-Z0-9]+.*/ const spe = /^.*[^a-zA-Z0-9]+.*/
console.log( console.log('包含数字', num.test(value), '包含字母', low.test(value), up.test(value), '包含特殊符号', spe.test(value))
'包含数字', if (!(num.test(value) && (low.test(value) || up.test(value)) && spe.test(value))) {
num.test(value),
'包含字母',
low.test(value),
up.test(value),
'包含特殊符号',
spe.test(value)
)
if (
!(
num.test(value) &&
(low.test(value) || up.test(value)) &&
spe.test(value)
)
) {
return callback(new Error(this.$t('validate.pwdStrength'))) return callback(new Error(this.$t('validate.pwdStrength')))
} }
// if (!this.dataForm.id && !/\S/.test(value)) { // if (!this.dataForm.id && !/\S/.test(value)) {
@ -199,52 +113,38 @@ export default {
} }
var validateEmail = (rule, value, callback) => { var validateEmail = (rule, value, callback) => {
if (value && !isEmail(value)) { if (value && !isEmail(value)) {
return callback( return callback(new Error(this.$t('validate.format', { attr: this.$t('user.email') })))
new Error(
this.$t('validate.format', { attr: this.$t('user.email') })
)
)
} }
callback() callback()
} }
var validateMobile = (rule, value, callback) => { var validateMobile = (rule, value, callback) => {
if (value && !isMobile(value)) { if (value && !isMobile(value)) {
return callback( return callback(new Error(this.$t('validate.format', { attr: this.$t('user.mobile') })))
new Error(
this.$t('validate.format', { attr: this.$t('user.mobile') })
)
)
} }
callback() callback()
} }
return { return {
username: [ username: [
{ { required: true, message: this.$t('validate.required'), trigger: 'blur' }
required: true,
message: this.$t('validate.required'),
trigger: 'blur'
}
], ],
deptName: [ deptName: [
{ { required: true, message: this.$t('validate.required'), trigger: 'change' }
required: true, ],
message: this.$t('validate.required'), password: [
trigger: 'change' { validator: validatePassword, trigger: 'blur' }
}
], ],
password: [{ validator: validatePassword, trigger: 'blur' }],
confirmPassword: [ confirmPassword: [
{ validator: validateConfirmPassword, trigger: 'blur' } { validator: validateConfirmPassword, trigger: 'blur' }
], ],
realName: [ realName: [
{ { required: true, message: this.$t('validate.required'), trigger: 'blur' }
required: true,
message: this.$t('validate.required'),
trigger: 'blur'
}
], ],
email: [{ validator: validateEmail, trigger: 'blur' }], email: [
mobile: [{ validator: validateMobile, trigger: 'blur' }] { validator: validateEmail, trigger: 'blur' }
],
mobile: [
{ validator: validateMobile, trigger: 'blur' }
]
} }
} }
}, },
@ -265,7 +165,10 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.dataForm.resetFields() this.$refs.dataForm.resetFields()
this.roleIdListDefault = [] this.roleIdListDefault = []
Promise.all([this.getRoleList(), this.getPostList()]).then(() => { Promise.all([
this.getRoleList(),
this.getPostList()
]).then(() => {
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo()
} else { } else {
@ -290,33 +193,25 @@ export default {
}, },
// //
getRoleList () { getRoleList () {
return this.$http return this.$http.get('/sys/role/list').then(({ data: res }) => {
.get('/sys/role/list')
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.roleList = res.data this.roleList = res.data
}) }).catch(() => {})
.catch(() => {})
}, },
// //
getPostList () { getPostList () {
return this.$http return this.$http.get('/sys/post/list').then(({ data: res }) => {
.get('/sys/post/list')
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.postList = res.data this.postList = res.data
}) }).catch(() => {})
.catch(() => {})
}, },
// //
getInfo () { getInfo () {
this.$http this.$http.get(`/sys/user/${this.dataForm.id}`).then(({ data: res }) => {
.get(`/sys/user/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
@ -327,22 +222,16 @@ export default {
} }
// , // ,
for (var i = 0; i < res.data.roleIdList.length; i++) { for (var i = 0; i < res.data.roleIdList.length; i++) {
if ( if (this.roleList.filter(item => item.id === res.data.roleIdList[i])[0]) {
this.roleList.filter(
(item) => item.id === res.data.roleIdList[i]
)[0]
) {
this.dataForm.roleIdList.push(res.data.roleIdList[i]) this.dataForm.roleIdList.push(res.data.roleIdList[i])
continue continue
} }
this.roleIdListDefault.push(res.data.roleIdList[i]) this.roleIdListDefault.push(res.data.roleIdList[i])
} }
}) }).catch(() => {})
.catch(() => {})
}, },
// //
dataFormSubmitHandle: debounce( dataFormSubmitHandle: debounce(function () {
function () {
this.$refs.dataForm.validate((valid) => { this.$refs.dataForm.validate((valid) => {
if (!valid) { if (!valid) {
return false return false
@ -359,8 +248,7 @@ export default {
...this.dataForm.roleIdList, ...this.dataForm.roleIdList,
...this.roleIdListDefault ...this.roleIdListDefault
] ]
}) }).then(({ data: res }) => {
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
@ -374,14 +262,10 @@ export default {
} }
}) })
this.submitFlag = true this.submitFlag = true
}) }).catch(() => {})
.catch(() => {})
} }
}) })
}, }, 1000, { leading: true, trailing: false })
1000,
{ leading: true, trailing: false }
)
} }
} }
</script> </script>

View File

@ -9,14 +9,7 @@
<el-form-item> <el-form-item>
<el-input <el-input
v-model="dataForm.username" v-model="dataForm.username"
placeholder="用户名" :placeholder="$t('user.username')"
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-input
v-model="dataForm.real_name"
placeholder="真实姓名"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
@ -51,7 +44,7 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="getDataList()">{{ <el-button type="primary" @click="getDataList()">{{
$t('query') $t("query")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -59,7 +52,7 @@
v-if="$hasPermission('sys:user:save')" v-if="$hasPermission('sys:user:save')"
type="primary" type="primary"
@click="addOrUpdateHandle()" @click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button >{{ $t("add") }}</el-button
> >
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -67,7 +60,7 @@
v-if="$hasPermission('sys:user:delete')" v-if="$hasPermission('sys:user:delete')"
type="danger" type="danger"
@click="deleteHandle()" @click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button >{{ $t("deleteBatch") }}</el-button
> >
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -75,7 +68,7 @@
v-if="$hasPermission('sys:user:export')" v-if="$hasPermission('sys:user:export')"
type="info" type="info"
@click="exportHandle()" @click="exportHandle()"
>{{ $t('export') }}</el-button >{{ $t("export") }}</el-button
> >
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -103,12 +96,6 @@
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column
prop="realName"
label="真实姓名"
header-align="center"
align="center"
></el-table-column>
<el-table-column <el-table-column
prop="deptName" prop="deptName"
:label="$t('user.deptName')" :label="$t('user.deptName')"
@ -136,7 +123,7 @@
align="center" align="center"
> >
<template slot-scope="scope"> <template slot-scope="scope">
{{ $getDictLabel('gender', scope.row.gender) }} {{ $getDictLabel("gender", scope.row.gender) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -148,10 +135,10 @@
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{ <el-tag v-if="scope.row.status === 0" size="small" type="danger">{{
$t('user.status0') $t("user.status0")
}}</el-tag> }}</el-tag>
<el-tag v-else size="small" type="success">{{ <el-tag v-else size="small" type="success">{{
$t('user.status1') $t("user.status1")
}}</el-tag> }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
@ -176,14 +163,14 @@
type="text" type="text"
size="small" size="small"
@click="addOrUpdateHandle(scope.row.id)" @click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button >{{ $t("update") }}</el-button
> >
<el-button <el-button
v-if="$hasPermission('sys:user:delete')" v-if="$hasPermission('sys:user:delete')"
type="text" type="text"
size="small" size="small"
@click="deleteHandle(scope.row.id)" @click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button >{{ $t("delete") }}</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
@ -209,87 +196,86 @@
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './user-add-or-update' import AddOrUpdate from "./user-add-or-update";
import qs from 'qs' import qs from "qs";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data() { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/sys/user/page', getDataListURL: "/sys/user/page",
getDataListIsPage: true, getDataListIsPage: true,
deleteURL: '/sys/user', deleteURL: "/sys/user",
deleteIsBatch: true, deleteIsBatch: true,
exportURL: '/sys/user/export' exportURL: "/sys/user/export",
}, },
postList: [], postList: [],
dataForm: { dataForm: {
username: '', username: "",
deptId: '', deptId: "",
postId: '', postId: "",
gender: '' gender: "",
} },
} };
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
}, },
created() { created() {
this.getPostList() this.getPostList();
}, },
methods: { methods: {
reset() { reset() {
this.$http this.$http
.get( .get(
this.mixinViewModuleOptions.getDataListURL + this.mixinViewModuleOptions.getDataListURL +
'?' + "?" +
qs.stringify({ qs.stringify({
page: 1, page: 1,
limit: 10, limit: 10,
username: '', username: "",
deptId: '', deptId: "",
postId: '', postId: "",
gender: '' gender: "",
}) })
) )
.then(({ data: res }) => { .then(({ data: res }) => {
this.dataForm.username = '' this.dataForm.username = "";
this.dataForm.real_name = '' this.dataForm.deptId = "";
this.dataForm.deptId = '' this.dataForm.postId = "";
this.dataForm.postId = '' this.dataForm.gender = "";
this.dataForm.gender = ''
if (res.code !== 0) { if (res.code !== 0) {
this.dataList = [] this.dataList = [];
this.total = 0 this.total = 0;
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.dataList = this.mixinViewModuleOptions.getDataListIsPage this.dataList = this.mixinViewModuleOptions.getDataListIsPage
? res.data.list ? res.data.list
: res.data : res.data;
this.total = this.mixinViewModuleOptions.getDataListIsPage this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total ? res.data.total
: 0 : 0;
if (this.mixinViewModuleOptions.requestCallback) { if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data) this.mixinViewModuleOptions.requestCallback(res.data);
} }
this.dataListLoading = false this.dataListLoading = false;
}) })
.catch(() => { .catch(() => {
this.dataListLoading = false this.dataListLoading = false;
}) });
}, },
getPostList() { getPostList() {
this.$http this.$http
.get('/sys/post/list') .get("/sys/post/list")
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.postList = res.data this.postList = res.data;
}) })
.catch(() => {}) .catch(() => {});
} },
} },
} };
</script> </script>

View File

@ -87,8 +87,7 @@ export default {
this.noData = true this.noData = true
return return
} }
const num = _arr.length < 3 ? _arr.length : 3 for (let i = 0; i < 3; i++) {
for (let i = 0; i < num; i++) {
const k = i + 1 const k = i + 1
this[`no${k}Obj`].name = _arr[i].name this[`no${k}Obj`].name = _arr[i].name
this[`no${k}Obj`].count = _arr[i].count this[`no${k}Obj`].count = _arr[i].count

View File

@ -45,7 +45,7 @@
"three.meshline": "^1.1.0", "three.meshline": "^1.1.0",
"vue": "^3.1.4", "vue": "^3.1.4",
"vue-router": "^4.0.10", "vue-router": "^4.0.10",
"vue3-video-play-emiyagm": "^1.3.1-beta.6.1", "vue3-video-play": "^1.3.1-beta.6",
"vuex": "^4.0.2" "vuex": "^4.0.2"
}, },
"devDependencies": { "devDependencies": {
@ -75,7 +75,6 @@
"svg-sprite-loader": "^6.0.9", "svg-sprite-loader": "^6.0.9",
"swiper": "^8.0.0", "swiper": "^8.0.0",
"vab-config": "0.0.8", "vab-config": "0.0.8",
"vue3-video-play-emiyagm": "^1.3.1-beta.6.1",
"webpackbar": "^5.0.0-3" "webpackbar": "^5.0.0-3"
}, },
"gitHooks": { "gitHooks": {

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-03-29 16:45:25 * @Date: 2022-03-29 16:45:25
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-08-08 09:19:02 * @LastEditTime: 2022-08-02 16:06:03
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!DOCTYPE html> <!DOCTYPE html>
@ -60,12 +60,10 @@
// window.SITE_CONFIG['websocketURL'] = '15.2.21.236:8888/renren-admin'; // window.SITE_CONFIG['websocketURL'] = '15.2.21.236:8888/renren-admin';
// window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address'; // window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797'; // window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
// window.SITE_CONFIG['backUrl'] = 'http://localhost:8001'; // window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796/';
// window.SITE_CONFIG['previewUrl'] = 'http://192.168.124.236:9796/'; // window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/';
// window.SITE_CONFIG['frontUrl'] = 'http://192.168.124.236:9796/document/#/devModelFile/'; // window.SITE_CONFIG['apiURL'] = 'http://15.2.21.239:8888/renren-admin';
// window.SITE_CONFIG['apiURL'] = 'http://192.168.124.236:8888/renren-admin'; window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
// window.SITE_CONFIG['websocketURL'] = '192.168.124.236:8888/renren-admin';
window.SITE_CONFIG['POI_URL'] = 'http://192.168.124.236:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
// 穿透版本 // 穿透版本
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797'; // window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/'; // window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';

View File

@ -1,8 +1,8 @@
/* /*
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23 * @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-08-01 11:02:21 * @LastEditTime: 2022-08-02 10:18:58
* @Description: 数据资源参数配置 * @Description: 数据资源参数配置
*/ */
const newLocation = 'qingdao' const newLocation = 'qingdao'

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23 * @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-08-02 18:19:32 * @LastEditTime: 2022-07-28 16:57:43
* @Description: 地图静态参数配置 * @Description: 地图静态参数配置
*/ */
var _mapConfig = {} var _mapConfig = {}

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-05-06 11:12:00 * @Date: 2022-05-06 11:12:00
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-03 10:13:59 * @LastEditTime: 2022-07-26 11:27:50
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
@ -68,7 +68,4 @@
position: relative; position: relative;
background-color: #fff; background-color: #fff;
} }
body {
font-size: 0.14rem;
}
</style> </style>

View File

@ -97,7 +97,7 @@ export function callTheTrendPort(start, end, params) {
export function totalCallsSnum(params) { export function totalCallsSnum(params) {
return request({ return request({
url: url:
`/gateway-monitor/getCallCount`, `/metrics/api/v1/query?time=${params}&query=sum(apigateway_http_status)`,
method: 'get', method: 'get',
}) })
} }

View File

@ -275,12 +275,3 @@ export function AbilityToPullDownPages(params) {
params, params,
}) })
} }
//
export function endProcess(params) {
return request({
url: '/act/task/endProcess',
method: 'post',
params,
})
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,8 +1,8 @@
/* /*
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-03-29 17:48:03 * @Date: 2022-03-29 17:48:03
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-06 15:00:49 * @LastEditTime: 2022-07-22 16:03:23
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import { createApp } from 'vue' import { createApp } from 'vue'
@ -16,8 +16,8 @@ import 'ant-design-vue/dist/antd.css'
import '@/vab' import '@/vab'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import * as moment from 'moment' import * as moment from 'moment'
import vue3videoPlay from 'vue3-video-play-emiyagm' // import vue3videoPlay from 'vue3-video-play' //
import 'vue3-video-play-emiyagm/dist/style.css' // css import 'vue3-video-play/dist/style.css' // css
import ElementPlus from 'element-plus' import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css' import 'element-plus/dist/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue' import * as ElementPlusIconsVue from '@element-plus/icons-vue'

View File

@ -13,16 +13,10 @@
backgroundImage: `url(${item.photo}) `, backgroundImage: `url(${item.photo}) `,
}" }"
></div> ></div>
<a-tooltip>
<template #title>{{ item.demandSubject }}</template>
<div class="name">{{ item.demandSubject }}</div> <div class="name">{{ item.demandSubject }}</div>
</a-tooltip>
<a-tooltip>
<template #title>{{ item.demandDetails }}</template>
<div class="text"> <div class="text">
{{ item.demandDetails }} {{ item.demandDetails }}
</div> </div>
</a-tooltip>
<div class="reply">回复量:{{ item.commentCount }}</div> <div class="reply">回复量:{{ item.commentCount }}</div>
<div class="view-details" @click="viewDetails(item.id)">查看详情</div> <div class="view-details" @click="viewDetails(item.id)">查看详情</div>
</div> </div>
@ -171,10 +165,6 @@
font-size: 16px; font-size: 16px;
color: #212121; color: #212121;
margin-bottom: 24px; margin-bottom: 24px;
width: 226px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.text { .text {
width: 100%; width: 100%;
@ -185,10 +175,6 @@
font-size: 14px; font-size: 14px;
color: #666; color: #666;
text-align: center; text-align: center;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
} }
.view-details { .view-details {
width: 75px; width: 75px;

View File

@ -64,14 +64,14 @@
</div> </div>
<div class="pagination"> <div class="pagination">
<!-- 分页 --> <!-- 分页 -->
<!-- <span>{{ resourceTotal }}</span> <span>{{ resourceTotal }}</span>
<a-pagination <a-pagination
v-model:current="currentPage" v-model:current="currentPage"
v-model:pageSize="currentPageSize" v-model:pageSize="currentPageSize"
show-quick-jumper show-quick-jumper
:total="resourceTotal" :total="resourceTotal"
@change="pageChange" @change="pageChange"
/> --> />
</div> </div>
</main> </main>
</div> </div>
@ -215,7 +215,7 @@
orderField: 'create_date', orderField: 'create_date',
orderType: 'DESC', orderType: 'DESC',
pageNum: currentPage.value, pageNum: currentPage.value,
pageSize: 100, pageSize: 3,
type: '赋能案例', type: '赋能案例',
} }
pageWithAttrs(params).then((res) => { pageWithAttrs(params).then((res) => {
@ -367,15 +367,14 @@
.content { .content {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-around; justify-content: center;
flex-wrap: wrap; padding-top: 40px;
padding: 40px 300px 0;
overflow: hidden; overflow: hidden;
.contenBox { .contenBox {
// width: 430px; // width: 430px;
padding: 30px; padding: 30px;
border: 1px solid #e4e6f5; border: 1px solid #e4e6f5;
margin-bottom: 20px; margin-right: 30px;
background: #ffffff; background: #ffffff;
border-radius: 6px; border-radius: 6px;
box-shadow: 5px 5px 20px 0 #f2f3fb; box-shadow: 5px 5px 20px 0 #f2f3fb;

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-19 10:15:33 * @Date: 2022-06-19 10:15:33
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-08-06 16:21:24 * @LastEditTime: 2022-06-19 18:19:58
* @Description: 能力云图-组件服务 * @Description: 能力云图-组件服务
--> -->
<template> <template>
@ -409,16 +409,11 @@
const TotalCallsAPI = () => { const TotalCallsAPI = () => {
const end = Date.parse(new Date()) / 1000 const end = Date.parse(new Date()) / 1000
totalCallsSnum(end).then((res) => { totalCallsSnum(end).then((res) => {
snum.value[1].num = Number(res.data.data) debugger
snum.value[1].num = res.data.data.result[0].value[1]
totalCallsSnum2(end).then((resSon) => { totalCallsSnum2(end).then((resSon) => {
if (snum.value[1].num === 0) {
num.value[2].num = '100%'
} else {
snum.value[2].num = snum.value[2].num =
parseInt( (resSon.data.data.result[0].value[1] / snum.value[1].num) * 100 + '%'
(resSon.data.data.result[0].value[1] / snum.value[1].num) * 100
) + '%'
}
}) })
}) })
} }
@ -426,11 +421,8 @@
timeSwitch(timeSwitchindex.value) timeSwitch(timeSwitchindex.value)
NumberOfComponentServices() NumberOfComponentServices()
ranking(dataclick.value) ranking(dataclick.value)
// 西API
if (!xinhaianIsShow) {
TotalCallsAPI() TotalCallsAPI()
} }
}
onMounted(() => { onMounted(() => {
init() init()
callTheTrend(callTheTrendData.value) callTheTrend(callTheTrendData.value)

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-13 10:22:27 * @Date: 2022-06-13 10:22:27
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-03 10:40:28 * @LastEditTime: 2022-08-02 11:28:00
* @Description: 算法上架 * @Description: 算法上架
--> -->
<template> <template>
@ -841,25 +841,25 @@
<style lang="less" scoped> <style lang="less" scoped>
.box { .box {
position: relative; position: relative;
top: 0.64rem; top: 64px;
margin: 0.15rem 4rem; margin: 15px 400px;
padding: 0.1rem; padding: 10px;
background: #fff; background: #fff;
.header { .header {
font-size: 0.28rem; font-size: 28px;
font-weight: 600; font-weight: 600;
} }
.vue-box { .vue-box {
padding: 0 1rem; padding: 0 100px;
} }
.top { .top {
margin: 0.1rem 0.2rem 0; margin: 10px 20px 0;
padding: 0.15rem 0.3rem; padding: 15px 30px;
background: #edf4fc; background: #edf4fc;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
div { div {
font-size: 0.18rem; font-size: 18px;
color: #999; color: #999;
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -868,26 +868,26 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 0.45rem; width: 45px;
height: 0.45rem; height: 45px;
border-radius: 50%; border-radius: 50%;
border: 0.01rem solid rgb(214, 214, 214); border: 1px solid rgb(214, 214, 214);
margin-right: 0.1rem; margin-right: 10px;
transition: all 0.3s ease; transition: all 0.3s ease;
span { span {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 0.3rem; width: 30px;
height: 0.3rem; height: 30px;
border-radius: 50%; border-radius: 50%;
border: 0.01rem solid #999; border: 1px solid #999;
} }
} }
.line { .line {
margin-left: 0.1rem; margin-left: 10px;
width: 1.3rem; width: 130px;
height: 0.01rem; height: 1px;
background: #999; background: #999;
} }
} }
@ -896,10 +896,10 @@
.bg-box { .bg-box {
background: #9ccefa; background: #9ccefa;
color: #fff; color: #fff;
border: 0.01rem solid #9ccefa; border: 1px solid #9ccefa;
span { span {
background: #0087ff; background: #0087ff;
border: 0.01rem solid #0087ff; border: 1px solid #0087ff;
} }
} }
.line { .line {
@ -909,18 +909,17 @@
.btn { .btn {
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
padding: 0.1rem 3.5rem 0; padding: 10px 350px 0;
button { button {
cursor: pointer; cursor: pointer;
font-size: 0.14rem; width: 80px;
width: 0.8rem; height: 35px;
height: 0.35rem;
text-align: center; text-align: center;
color: #fff; color: #fff;
border: 0.01rem solid #9ccefa; border: 1px solid #9ccefa;
span { span {
background: #0087ff; background: #0087ff;
border: 0.01rem solid #0087ff; border: 1px solid #0087ff;
} }
} }
.line { .line {
@ -941,16 +940,15 @@
.btn { .btn {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 0.1rem 3.5rem 0; padding: 10px 350px 0;
button { button {
cursor: pointer; cursor: pointer;
font-size: 0.14rem; width: 80px;
width: 0.8rem; height: 35px;
height: 0.35rem;
text-align: center; text-align: center;
color: #fff; color: #fff;
border: none; border: none;
border-radius: 0.06rem; border-radius: 6px;
background: #0087ff; background: #0087ff;
} }
button:nth-of-type(1) { button:nth-of-type(1) {

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-13 10:22:27 * @Date: 2022-06-13 10:22:27
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-04 16:11:50 * @LastEditTime: 2022-08-02 11:40:41
* @Description: 应用上架 * @Description: 应用上架
--> -->
<template> <template>
@ -67,7 +67,7 @@
v-else-if="showView === '部署与应用'" v-else-if="showView === '部署与应用'"
:refData="refData" :refData="refData"
:dataFrom="dataFrom" :dataFrom="dataFrom"
:externalField="['共享类型', '访问地址']" :externalField="['共享类型']"
:configure="bs" :configure="bs"
@submit="submit()" @submit="submit()"
@back="back()" @back="back()"
@ -299,6 +299,7 @@
'共享条件', '共享条件',
'应用名称', '应用名称',
'应用描述', '应用描述',
'应用状态',
'应用类型', '应用类型',
]) ])
const notFilled = ref([]) const notFilled = ref([])
@ -346,15 +347,15 @@
) { ) {
notFilled.value.push('应用领域') notFilled.value.push('应用领域')
} }
// if ( if (
// !dataFrom.value.infoList.filter( !dataFrom.value.infoList.filter(
// (val) => val.attrType === '' (val) => val.attrType === '应用状态'
// )[0] || )[0] ||
// !dataFrom.value.infoList.filter((val) => val.attrType === '')[0] !dataFrom.value.infoList.filter((val) => val.attrType === '应用状态')[0]
// .attrValue .attrValue
// ) { ) {
// notFilled.value.push('') notFilled.value.push('应用状态')
// } }
if ( if (
!dataFrom.value.infoList.filter( !dataFrom.value.infoList.filter(
(val) => val.attrType === '应用类型' (val) => val.attrType === '应用类型'

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-17 14:11:08 * @Date: 2022-06-17 14:11:08
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-03 11:47:41 * @LastEditTime: 2022-08-02 11:31:43
* @Description: 上架 * @Description: 上架
--> -->
<template> <template>
@ -86,7 +86,6 @@
<template v-if="attr.type == 'input2'"> <template v-if="attr.type == 'input2'">
<a-input <a-input
disabled disabled
:maxLength="1000"
v-model:value="val[attr.field]" v-model:value="val[attr.field]"
:placeholder="'请填写' + attr.name" :placeholder="'请填写' + attr.name"
/> />
@ -145,7 +144,6 @@
/> />
<template v-if="val.type == 'input2'"> <template v-if="val.type == 'input2'">
<a-input <a-input
:maxLength="1000"
v-model:value="val.note1" v-model:value="val.note1"
:placeholder="'请填写' + val.name" :placeholder="'请填写' + val.name"
/> />
@ -230,7 +228,6 @@
{{ item.name }} {{ item.name }}
</div> </div>
<a-input <a-input
:maxLength="1000"
v-if="item.type == 'input' && item.name.indexOf('名称') == -1" v-if="item.type == 'input' && item.name.indexOf('名称') == -1"
v-model:value="item.note1" v-model:value="item.note1"
:placeholder="'请输入' + item.name" :placeholder="'请输入' + item.name"
@ -249,11 +246,9 @@
v-else-if="item.type == 'radio'" v-else-if="item.type == 'radio'"
v-model:value="item.note1" v-model:value="item.note1"
:options="item.options" :options="item.options"
@change="changeIiem(item.name, item.note1)"
/> />
<a-input <a-input
v-else-if="item.type == 'AbilityType'" v-else-if="item.type == 'AbilityType'"
:maxLength="1000"
v-model:value="item.note1" v-model:value="item.note1"
:placeholder="'请输入' + item.name" :placeholder="'请输入' + item.name"
:disabled="true" :disabled="true"
@ -261,7 +256,6 @@
<a-input <a-input
v-else-if="item.type == 'ComponentType'" v-else-if="item.type == 'ComponentType'"
v-model:value="item.note1" v-model:value="item.note1"
:maxLength="1000"
:placeholder="'请输入' + item.name" :placeholder="'请输入' + item.name"
:disabled="true" :disabled="true"
/> />
@ -1228,7 +1222,6 @@
.submit { .submit {
margin-top: 0.4rem; margin-top: 0.4rem;
font-size: 0.14rem;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;

View File

@ -299,7 +299,7 @@
if (res.data.code == '0') { if (res.data.code == '0') {
demandCommentApply({ id: res.data.data.id }).then((res1) => { demandCommentApply({ id: res.data.data.id }).then((res1) => {
if (res1.data.code == '0') { if (res1.data.code == '0') {
message.success('提交评论成功,请注意查看消息通知') message.success('提交评价成功')
myComment.value = '' myComment.value = ''
evaluateList() evaluateList()
} }

View File

@ -9,7 +9,7 @@
<div class="algorithm-advantage" v-if="flag"> <div class="algorithm-advantage" v-if="flag">
<detals-title title="算法优势" type="ADVANTGE"></detals-title> <detals-title title="算法优势" type="ADVANTGE"></detals-title>
<div class="main"> <div class="main">
<div class="top" v-if="data.length < 3"> <div class="top">
<div v-for="val in data" :key="val.id" class="item"> <div v-for="val in data" :key="val.id" class="item">
<div class="icon" :class="val.icon"></div> <div class="icon" :class="val.icon"></div>
<a-tooltip> <a-tooltip>
@ -22,44 +22,17 @@
</a-tooltip> </a-tooltip>
</div> </div>
</div> </div>
<div class="top" v-else>
<swiper
:slidesPerView="3"
:spaceBetween="30"
:pagination="{ clickable: true }"
:modules="modules"
class="mySwiper2"
@swiper="onSwiper"
@slideChange="onSlideChange"
>
<swiper-slide v-for="val in data" :key="val.id" class="item">
<div class="icon" :class="val.icon"></div>
<a-tooltip>
<template #title>{{ val.title }}</template>
<div class="title">{{ val.title }}</div>
</a-tooltip>
<a-tooltip>
<template #title>{{ val.text }}</template>
<div class="text">{{ val.text }}</div>
</a-tooltip>
</swiper-slide>
</swiper>
</div>
<div class="bottom"></div> <div class="bottom"></div>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref, defineProps, watch } from 'vue' import { ref, defineProps, watch } from 'vue'
import { Navigation, Pagination, Scrollbar, A11y } from 'swiper'
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle.vue' import DetalsTitle from '@/views/detailsAll/components/DetalsTitle.vue'
import { Swiper, SwiperSlide } from 'swiper/vue/swiper-vue.js'
import 'swiper/swiper-bundle.min.css'
const data = ref([]) const data = ref([])
const props = defineProps({ const props = defineProps({
dataList: { type: Object, default: null }, dataList: { type: Object, default: null },
}) })
const modules = ref([Pagination])
const flag = ref(true) const flag = ref(true)
if (props.dataList.infoList) { if (props.dataList.infoList) {
let obj = props.dataList.infoList.filter( let obj = props.dataList.infoList.filter(
@ -70,10 +43,10 @@
} else { } else {
data.value = [] data.value = []
let arr = JSON.parse(obj.attrValue) let arr = JSON.parse(obj.attrValue)
// if (arr.length > 3) { if (arr.length > 3) {
// // //
// arr = arr.splice(0, 3) arr = arr.splice(0, 3)
// } }
arr.forEach((item, index) => { arr.forEach((item, index) => {
data.value.push({ data.value.push({
title: item.name, title: item.name,
@ -94,10 +67,10 @@
} else { } else {
data.value = [] data.value = []
let arr = JSON.parse(obj.attrValue) let arr = JSON.parse(obj.attrValue)
// if (arr.length > 3) { if (arr.length > 3) {
// // //
// arr = arr.splice(0, 3) arr = arr.splice(0, 3)
// } }
arr.forEach((item, index) => { arr.forEach((item, index) => {
data.value.push({ data.value.push({
title: item.name, title: item.name,
@ -117,7 +90,6 @@
.main { .main {
margin-top: 40px; margin-top: 40px;
.top { .top {
width: 13.14rem;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
align-items: center; align-items: center;

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="application-associated-ability" v-if="flag"> <div class="application-associated-ability" v-if="flag">
<detals-title title="来源应用" type="ASSOCIATED"></detals-title> <detals-title title="关联应用" type="ASSOCIATED"></detals-title>
<div <div
class="application-associated-ability-main" class="application-associated-ability-main"
v-if="dataFrom[0].dataList.length < 4" v-if="dataFrom[0].dataList.length < 4"

View File

@ -64,18 +64,18 @@
}, },
]) ])
const list = ref([]) const list = ref([])
// id // id
if (keyId) { if (keyId) {
queryPartAppByKeyId2({ keyId: keyId }).then((res) => { queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
console.log('ressssssss', res) console.log('ressssssss', res)
if (res.data.data.length > 0) { if (res.data.data.length > 0) {
// //
navList.value.unshift({ navList.value.unshift({
name: '来源应用', name: '关联应用',
key: 'algorithm-associated-ability', key: 'algorithm-associated-ability',
show: true, show: true,
}) })
// list.value.push('') // list.value.push('')
console.log('navList', navList) console.log('navList', navList)
} }
}) })
@ -130,7 +130,7 @@
if (list.value.length > 0) { if (list.value.length > 0) {
if (navList.value.filter((item) => item.name === list.value[0])[0]) { if (navList.value.filter((item) => item.name === list.value[0])[0]) {
select.value = navList.value.filter( select.value = navList.value.filter(
(item) => (item.name === '来源应用') | (item.name === list.value[0]) (item) => (item.name === '关联应用') | (item.name === list.value[0])
)[0].key )[0].key
} }
} }
@ -171,7 +171,7 @@
list.value.push('使用方式') list.value.push('使用方式')
} }
}) })
list.value.unshift('来源应用') list.value.unshift('关联应用')
navList.value.forEach((item) => { navList.value.forEach((item) => {
console.log(item) console.log(item)
if (list.value.indexOf(item.name) > -1) { if (list.value.indexOf(item.name) > -1) {

View File

@ -66,7 +66,7 @@
}) })
const select = ref('application-associated-ability') const select = ref('application-associated-ability')
const list = ref([]) const list = ref([])
// id // id
if (keyId) { if (keyId) {
let params = { let params = {
keyId: keyId, keyId: keyId,
@ -75,7 +75,7 @@
queryPartAppByKeyId(params).then((res) => { queryPartAppByKeyId(params).then((res) => {
console.log('ressssssss', res) console.log('ressssssss', res)
if (res.data.data.length != 0) { if (res.data.data.length != 0) {
// //
navList.value.unshift({ navList.value.unshift({
name: '关联组件', name: '关联组件',
key: 'application-associated-ability', key: 'application-associated-ability',

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="application-associated-ability" v-if="flag"> <div class="application-associated-ability" v-if="flag">
<detals-title title="来源应用" type="ASSOCIATED"></detals-title> <detals-title title="关联应用" type="ASSOCIATED"></detals-title>
<div <div
class="application-associated-ability-main" class="application-associated-ability-main"
v-if="dataFrom[0].dataList.length < 4" v-if="dataFrom[0].dataList.length < 4"

View File

@ -62,18 +62,18 @@
}) })
const select = ref('business-associated-ability') const select = ref('business-associated-ability')
const list = ref([]) const list = ref([])
// id // id
if (keyId) { if (keyId) {
queryPartAppByKeyId2({ keyId: keyId }).then((res) => { queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
console.log('ressssssss', res) console.log('ressssssss', res)
if (res.data.data.length > 0) { if (res.data.data.length > 0) {
// //
navList.value.unshift({ navList.value.unshift({
name: '来源应用', name: '关联应用',
key: 'business-associated-ability', key: 'business-associated-ability',
show: true, show: true,
}) })
// list.value.push('') // list.value.push('')
console.log('navList', navList) console.log('navList', navList)
} }
}) })
@ -85,7 +85,7 @@
if (props.dataList.infoList) { if (props.dataList.infoList) {
list.value = [] list.value = []
let arr = [ let arr = [
'来源应用', '关联应用',
'组件视频介绍', '组件视频介绍',
'功能介绍', '功能介绍',
'应用场景', '应用场景',
@ -110,12 +110,12 @@
list.value.push('组件展示') list.value.push('组件展示')
} }
}) })
list.value.unshift('来源应用') list.value.unshift('关联应用')
list.value.push('使用方式') list.value.push('使用方式')
navList.value.forEach((item) => { navList.value.forEach((item) => {
console.log(item) console.log(item)
if (list.value.indexOf(item.name) > -1) { if (list.value.indexOf(item.name) > -1) {
if (item.name == '来源应用') { if (item.name == '关联应用') {
if (props.associatedComponents[0].dataList.length != 0) { if (props.associatedComponents[0].dataList.length != 0) {
item.show = true item.show = true
} }
@ -127,7 +127,7 @@
if (list.value.length > 0) { if (list.value.length > 0) {
if (navList.value.filter((item) => item.name === list.value[0])[0]) { if (navList.value.filter((item) => item.name === list.value[0])[0]) {
select.value = navList.value.filter( select.value = navList.value.filter(
(item) => (item.name === '来源应用') | (item.name === list.value[0]) (item) => (item.name === '关联应用') | (item.name === list.value[0])
)[0].key )[0].key
} }
} }
@ -145,7 +145,7 @@
if (val) { if (val) {
list.value = [] list.value = []
let arr = [ let arr = [
'来源应用', '关联应用',
'组件视频介绍', '组件视频介绍',
'功能介绍', '功能介绍',
'应用场景', '应用场景',
@ -171,12 +171,12 @@
list.value.push('组件展示') list.value.push('组件展示')
} }
}) })
list.value.unshift('来源应用') list.value.unshift('关联应用')
list.value.push('使用方式') list.value.push('使用方式')
navList.value.forEach((item) => { navList.value.forEach((item) => {
console.log(item) console.log(item)
if (list.value.indexOf(item.name) > -1) { if (list.value.indexOf(item.name) > -1) {
if (item.name == '来源应用') { if (item.name == '关联应用') {
if (props.associatedComponents[0].dataList.length != 0) { if (props.associatedComponents[0].dataList.length != 0) {
item.show = true item.show = true
} }
@ -189,7 +189,7 @@
if (navList.value.filter((item) => item.name === list.value[0])[0]) { if (navList.value.filter((item) => item.name === list.value[0])[0]) {
select.value = navList.value.filter( select.value = navList.value.filter(
(item) => (item) =>
(item.name === '来源应用') | (item.name === list.value[0]) (item.name === '关联应用') | (item.name === list.value[0])
)[0].key )[0].key
} }
} }

View File

@ -210,6 +210,7 @@
let obj = props.dataList.infoList.filter( let obj = props.dataList.infoList.filter(
(item) => item.attrType === '使用手册' (item) => item.attrType === '使用手册'
)[0] )[0]
console.log('dataFrom.value.link', obj.attrValue)
if (obj) { if (obj) {
window.open( window.open(
window.SITE_CONFIG.previewUrl + window.SITE_CONFIG.previewUrl +
@ -220,7 +221,7 @@
message.config({ message.config({
top: '100px', // top: '100px', //
}) })
message.error('暂未开放新手指引') message.error('暂未上传使用手册')
} }
} }
</script> </script>

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="application-associated-ability" v-if="flag"> <div class="application-associated-ability" v-if="flag">
<detals-title title="来源应用" type="ASSOCIATED"></detals-title> <detals-title title="关联应用" type="ASSOCIATED"></detals-title>
<div <div
class="application-associated-ability-main" class="application-associated-ability-main"
v-if="dataFrom[0].dataList.length < 4" v-if="dataFrom[0].dataList.length < 4"

View File

@ -65,18 +65,18 @@
}) })
const select = ref('developer-associated-ability') const select = ref('developer-associated-ability')
const list = ref([]) const list = ref([])
// id // id
if (keyId) { if (keyId) {
queryPartAppByKeyId2({ keyId: keyId }).then((res) => { queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
console.log('ressssssss', res) console.log('ressssssss', res)
if (res.data.data.length > 0) { if (res.data.data.length > 0) {
// //
navList.value.unshift({ navList.value.unshift({
name: '来源应用', name: '关联应用',
key: 'developer-associated-ability', key: 'developer-associated-ability',
show: true, show: true,
}) })
// list.value.push('') // list.value.push('')
console.log('navList', navList) console.log('navList', navList)
} }
}) })
@ -101,12 +101,12 @@
list.value.push('组件试用') list.value.push('组件试用')
} }
}) })
list.value.unshift('来源应用') list.value.unshift('关联应用')
list.value.push('使用方式') list.value.push('使用方式')
navList.value.forEach((item) => { navList.value.forEach((item) => {
console.log(item) console.log(item)
if (list.value.indexOf(item.name) > -1) { if (list.value.indexOf(item.name) > -1) {
// if (item.name == '') { // if (item.name == '') {
// if (props.associatedComponents[0].dataList.length != 0) { // if (props.associatedComponents[0].dataList.length != 0) {
// item.show = true // item.show = true
// } // }
@ -117,7 +117,7 @@
}) })
if (navList.value.filter((item) => item.name === list.value[0])[0]) { if (navList.value.filter((item) => item.name === list.value[0])[0]) {
select.value = navList.value.filter( select.value = navList.value.filter(
(item) => (item.name === '来源应用') | (item.name === list.value[0]) (item) => (item.name === '关联应用') | (item.name === list.value[0])
// (item) => item.name === list.value[0] // (item) => item.name === list.value[0]
)[0].key )[0].key
} }
@ -151,13 +151,13 @@
list.value.push('组件试用') list.value.push('组件试用')
} }
}) })
list.value.unshift('来源应用') list.value.unshift('关联应用')
// list.value.push('') // list.value.push('')
list.value.push('使用方式') list.value.push('使用方式')
navList.value.forEach((item) => { navList.value.forEach((item) => {
console.log(item) console.log(item)
if (list.value.indexOf(item.name) > -1) { if (list.value.indexOf(item.name) > -1) {
// if (item.name == '') { // if (item.name == '') {
// if (props.associatedComponents[0].dataList.length != 0) { // if (props.associatedComponents[0].dataList.length != 0) {
// item.show = true // item.show = true
// } // }
@ -170,7 +170,7 @@
if (navList.value.filter((item) => item.name === list.value[0])[0]) { if (navList.value.filter((item) => item.name === list.value[0])[0]) {
select.value = navList.value.filter( select.value = navList.value.filter(
(item) => (item) =>
(item.name === '来源应用') | (item.name === list.value[0]) (item.name === '关联应用') | (item.name === list.value[0])
)[0].key )[0].key
} }
} }

View File

@ -173,7 +173,7 @@
message.config({ message.config({
top: '100px', // top: '100px', //
}) })
message.error('暂未开放新手指引') message.error('暂未上传使用手册')
} }
} }
watch( watch(

View File

@ -17,12 +17,7 @@
</div> </div>
<div class="main-center"> <div class="main-center">
<p>{{ dataFrom.numberName }}</p> <p>{{ dataFrom.numberName }}</p>
<a-tooltip> <p>{{ dataFrom.number }}</p>
<template #title>{{ dataFrom.number }}</template>
<p class="main-center-number">
{{ dataFrom.number }}
</p>
</a-tooltip>
<div @click="copyFunction(dataFrom.number, '复制账号')">复制账号</div> <div @click="copyFunction(dataFrom.number, '复制账号')">复制账号</div>
</div> </div>
<div class="main-right"> <div class="main-right">
@ -45,9 +40,9 @@
}) })
const dataFrom = ref({ const dataFrom = ref({
linkName: '试用地址', linkName: '试用地址',
link: '', link: 'http://localhost:8080/#/detailsfdddffffffffffffffdfgdfgdfdgdfgdfg',
numberName: '试用账号', numberName: '试用账号',
number: '', number: 'zhangfeihu',
passwordName: '试用密码', passwordName: '试用密码',
password: '**************************', password: '**************************',
password2: '', password2: '',
@ -149,13 +144,6 @@
.main-center { .main-center {
padding-left: 1rem; padding-left: 1rem;
padding-right: 1rem; padding-right: 1rem;
.main-center-number {
display: inline-block;
width: 2.4rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
} }
.main-right { .main-right {
padding-right: 0.7rem; padding-right: 0.7rem;

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="application-associated-ability" v-if="flag"> <div class="application-associated-ability" v-if="flag">
<detals-title title="来源应用" type="ASSOCIATED"></detals-title> <detals-title title="关联应用" type="ASSOCIATED"></detals-title>
<div <div
class="application-associated-ability-main" class="application-associated-ability-main"
v-if="dataFrom[0].dataList.length < 4" v-if="dataFrom[0].dataList.length < 4"

View File

@ -64,18 +64,18 @@
associatedComponents: { type: Array, default: null }, associatedComponents: { type: Array, default: null },
}) })
const list = ref([]) const list = ref([])
// id // id
if (keyId) { if (keyId) {
queryPartAppByKeyId2({ keyId: keyId }).then((res) => { queryPartAppByKeyId2({ keyId: keyId }).then((res) => {
console.log('ressssssss', res) console.log('ressssssss', res)
if (res.data.data.length > 0) { if (res.data.data.length > 0) {
// //
navList.value.unshift({ navList.value.unshift({
name: '来源应用', name: '关联应用',
key: 'layer-service-associated-ability', key: 'layer-service-associated-ability',
show: true, show: true,
}) })
list.value.unshift('来源应用') list.value.unshift('关联应用')
} }
}) })
} }
@ -137,7 +137,7 @@
list.value.push('使用方式') list.value.push('使用方式')
} }
}) })
list.value.unshift('来源应用') list.value.unshift('关联应用')
navList.value.forEach((item) => { navList.value.forEach((item) => {
console.log(item) console.log(item)
if (list.value.indexOf(item.name) > -1) { if (list.value.indexOf(item.name) > -1) {
@ -146,7 +146,7 @@
}) })
if (navList.value.filter((item) => item.name === list.value[0])[0]) { if (navList.value.filter((item) => item.name === list.value[0])[0]) {
select.value = navList.value.filter( select.value = navList.value.filter(
(item) => (item.name === '来源应用') | (item.name === list.value[0]) (item) => (item.name === '关联应用') | (item.name === list.value[0])
// (item) => item.name === list.value[0] // (item) => item.name === list.value[0]
)[0].key )[0].key
} }
@ -215,7 +215,7 @@
list.value.push('使用方式') list.value.push('使用方式')
} }
}) })
list.value.unshift('来源应用') list.value.unshift('关联应用')
navList.value.forEach((item) => { navList.value.forEach((item) => {
console.log(item) console.log(item)
if (list.value.indexOf(item.name) > -1) { if (list.value.indexOf(item.name) > -1) {

View File

@ -12,14 +12,14 @@
<div class="left"> <div class="left">
<a-tooltip> <a-tooltip>
<template #title>{{ item.linkValue }}</template> <template #title>{{ item.linkValue }}</template>
<p @click="ServiceAddressFunction(item.linkValue)"> <p>
服务地址 服务地址
{{ item.linkValue }} {{ item.linkValue }}
</p> </p>
</a-tooltip> </a-tooltip>
<a-tooltip> <a-tooltip>
<template #title>{{ item.csslinkValue }}</template> <template #title>{{ item.csslinkValue }}</template>
<p @click="ServiceAddressFunction(item.csslinkValue)"> <p>
样式服务地址 样式服务地址
{{ item.csslinkValue }} {{ item.csslinkValue }}
</p> </p>
@ -186,10 +186,6 @@
} }
} }
) )
//
function ServiceAddressFunction(link) {
window.open(link)
}
function technical() { function technical() {
// //
// const type = pinyin(props.dataList.type, { // const type = pinyin(props.dataList.type, {
@ -284,7 +280,6 @@
color: #212956; color: #212956;
line-height: 26px; line-height: 26px;
margin-top: 0.3rem; margin-top: 0.3rem;
cursor: pointer;
} }
p:first-child { p:first-child {
margin-top: 0.2rem; margin-top: 0.2rem;

View File

@ -2,51 +2,8 @@
<div class="ability-to-apply-for" :class="{ all: falg }"> <div class="ability-to-apply-for" :class="{ all: falg }">
<div class="title"> <div class="title">
<span>申请能力</span> <span>申请能力</span>
<div class="btnBox" v-show="!falg"> <span class="btn" @click="falg = !falg" v-show="!falg">展开</span>
<svg <span class="btn" @click="falg = !falg" v-show="falg">收起</span>
t="1659419933164"
class="btn"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="5926"
width="20"
height="20"
@click="falg = !falg"
>
<path
d="M512 565.12a45.44 45.44 0 0 1-32.64-13.44l-448-451.84a45.44 45.44 0 0 1 64-64L512 454.4 931.84 35.2a46.08 46.08 0 0 1 64 0 45.44 45.44 0 0 1 0 64L545.28 551.68a45.44 45.44 0 0 1-33.28 13.44z"
fill="#13227a"
p-id="5927"
></path>
<path
d="M512 1016.96a45.44 45.44 0 0 1-32.64-13.44l-448-451.84a45.44 45.44 0 0 1 64-64L512 906.24l419.2-419.2a46.08 46.08 0 0 1 64 0 45.44 45.44 0 0 1 0 64l-449.92 452.48a45.44 45.44 0 0 1-33.28 13.44z"
fill="#13227a"
p-id="5928"
></path>
</svg>
<span class="btn" @click="falg = !falg">展开</span>
</div>
<div class="btnBox" v-show="falg">
<svg
t="1659420014519"
class="btn"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="9781"
width="20"
height="20"
@click="falg = !falg"
>
<path
d="M498.095 146.134l403.416 403.415c17.387 17.387 45.576 17.387 62.963 0s17.387-45.576 0-62.963L499.888 22 35.302 486.586c-17.388 17.387-17.388 45.575 0 62.963 17.387 17.387 45.576 17.387 62.964 0L498.095 146.134zM498.817 592.073l402.693 402.693c17.387 17.387 45.576 17.387 62.963 0s17.387-45.576 0-62.963L499.888 467.219 35.302 931.804c-17.388 17.387-17.388 45.576 0 62.963 17.387 17.387 45.576 17.387 62.964 0L498.817 592.073z"
p-id="9782"
fill="#13227a"
></path>
</svg>
<span class="btn" @click="falg = !falg">收起</span>
</div>
</div> </div>
<div <div
v-for="(item, index) in dataForm" v-for="(item, index) in dataForm"
@ -291,7 +248,6 @@
.btn { .btn {
cursor: pointer; cursor: pointer;
margin-left: 10px;
} }
.tx { .tx {
@ -329,8 +285,4 @@
background: url('~@/assets/home/ywzj_square.png') no-repeat; background: url('~@/assets/home/ywzj_square.png') no-repeat;
background-size: 100%; background-size: 100%;
} }
.btnBox {
display: flex;
align-items: center;
}
</style> </style>

View File

@ -772,7 +772,7 @@
type: Cardsname.value, type: Cardsname.value,
name: '', name: '',
infoList: [], infoList: [],
orderField: 'visits', // total visits 访 applyCount score collectCount orderField: 'total', // total visits 访 applyCount score collectCount
orderType: 'DESC', // ASC DESC orderType: 'DESC', // ASC DESC
} }
//西 //西

View File

@ -37,9 +37,7 @@
{{ `共选取${selectedRowKeys.length}个算法` }} {{ `共选取${selectedRowKeys.length}个算法` }}
</div> </div>
<div class="td" v-for="(item, k) in detailArray" :key="k"> <div class="td" v-for="(item, k) in detailArray" :key="k">
<span v-if="item" style="line-height: 14px"> <span v-if="item">{{ item.name || '--' }}</span>
{{ item.name || '--' }}
</span>
<span <span
v-if="item" v-if="item"
@click="deleteList(k)" @click="deleteList(k)"
@ -232,10 +230,10 @@
text: '共享条件', text: '共享条件',
key: 'shareCondition', key: 'shareCondition',
}, },
// { {
// text: '', text: '共享类型',
// key: 'shareType', key: 'shareType',
// }, },
{ {
text: '算法描述', text: '算法描述',
key: 'description', key: 'description',
@ -357,6 +355,7 @@
answer: '回答', answer: '回答',
}, },
} }
const showAddModal = ref(false) const showAddModal = ref(false)
const dataList = ref([]) const dataList = ref([])
const selectedRowKeys = ref([]) const selectedRowKeys = ref([])
@ -429,7 +428,7 @@
_newObj.list = [] _newObj.list = []
} }
let list = [] let list = []
titleInfoObj[titleKey].map((trName, index) => { titleInfoObj[titleKey].map((trName) => {
let obj = { let obj = {
name: trName.text, name: trName.text,
} }
@ -446,15 +445,8 @@
} }
tableData.value.push(_newObj) tableData.value.push(_newObj)
}) })
tableData.value[1].list[4].infoList.map((item, index) => {
if (!item && tableData.value[0].list[0].infoList[index]) {
tableData.value[1].list[3].infoList[index] = '否'
} else if (item && tableData.value[0].list[0].infoList[index]) {
tableData.value[1].list[3].infoList[index] = '是'
}
})
console.log('11111111111111', tableData.value[1].list[4]) console.log('11111111111111', tableData.value)
} }
// //

View File

@ -249,7 +249,7 @@
relaunch, relaunch,
selectOne, selectOne,
} from '@/api/home' } from '@/api/home'
import { getCategoryTreePage, endProcess } from '@/api/personalCenter' import { getCategoryTreePage } from '@/api/personalCenter'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { sgcDel, getApplyForm } from '@/api/personalCenter' import { sgcDel, getApplyForm } from '@/api/personalCenter'
import { pageWithAttrs } from '@/api/home' import { pageWithAttrs } from '@/api/home'
@ -327,30 +327,6 @@
enclosureName: '', // enclosureName: '', //
}) })
const dataList = ref([]) const dataList = ref([])
const id = router.currentRoute.value.query.id
const taskId = router.currentRoute.value.query.taskId
const businessKey = ref(router.currentRoute.value.query.id)
if (id) {
getApplyForm(id).then((res) => {
console.log('修改==============>', res.data.data)
// formName.id = res.data.data.id || ''
formName.applicationSystem = res.data.data.applicationSystem || ''
formName.applicationScene = res.data.data.applicationScene || []
formName.applicationBackground =
res.data.data.applicationBackground || ''
formName.effectWish = res.data.data.effectWish || ''
formName.phone = res.data.data.phone || ''
// formName.system = res.data.data.system || []
formName.enclosure = res.data.data.enclosure || ''
formName.enclosureName = res.data.data.enclosureName || ''
if (res.data.data.enclosure) {
fileList.value.push({
name: res.data.data.enclosureName,
url: res.data.data.enclosure,
})
}
})
}
getUser().then((res) => { getUser().then((res) => {
formName.user = res.data.data.realName formName.user = res.data.data.realName
formName.userId = res.data.data.id formName.userId = res.data.data.id
@ -362,6 +338,18 @@
}) })
}) })
// console.log('====================', list.value) // console.log('====================', list.value)
const businessKey = ref(router.currentRoute.value.query.id)
const taskId = ref(router.currentRoute.value.query.taskId)
if (businessKey.value) {
getApplyForm(businessKey.value).then((res) => {
formName.id = res.data.data.id
formName.phone = res.data.data.phone
formName.scene = res.data.data.scene
formName.basis = res.data.data.basis
formName.enclosure = res.data.data.enclosure
// console.log('================>', res, formName.phone)
})
}
const applicationSceneOpthion = ref([]) const applicationSceneOpthion = ref([])
getCategoryTreePage({ getCategoryTreePage({
page: 1, page: 1,
@ -397,6 +385,34 @@
window.history.go(-1) window.history.go(-1)
} }
const processStartHandle = () => { const processStartHandle = () => {
if (businessKey.value) {
const obj = ref({})
for (const key in formName) {
if (key !== 'formNameSystem') {
obj.value[key] = formName[key]
}
}
obj.value.system = formName.system[0].resourceName
tabilityapplication(obj.value).then((upres) => {
if (upres.data.code == 0) {
relaunch({ data: obj.value, taskId: taskId.value }).then(
(res) => {
// console.log('================>', res)
if (res.data.code == 0) {
message.success('重新发起流程成功!')
window.setTimeout(() => {
window.history.go(-1)
}, 1000)
} else {
message.error('重新发起流程失败!')
}
}
)
} else {
message.error('数据更新失败!')
}
})
} else {
formRef.value.validate().then(() => { formRef.value.validate().then(() => {
if (!formUrl) { if (!formUrl) {
return message.error('请设置保存表单的URL') return message.error('请设置保存表单的URL')
@ -404,139 +420,6 @@
if (!formName) { if (!formName) {
return message.error('请设置表单名称') return message.error('请设置表单名称')
} }
if (id) {
endProcess({ instanceId: taskId }).then((end) => {
if (end.data.code == 0) {
let ids = []
let falgNum = 0
let sxt = true
formName.system = []
console.log('list==================', list.value)
list.value.map((val) => {
val.arr.map((item) => {
if (item.type !== '基础设施') {
falgNum++
}
})
})
list.value.map((val) => {
val.arr.map((item) => {
if (item.type !== '基础设施') {
formName.system.push({
resourceId: item.resourceId,
resourceName: item.resourceName,
})
falgNum++
console.log(item.id)
if (item.id) {
ids.push(item.id)
}
} else {
let obj = {}
Object.assign(obj, formName)
console.log('摄像头===============>', obj, item)
obj.system = []
item.note1 = JSON.parse(item.note1)
item.note1.map((sxt) => {
obj.system.push({
resourceId: sxt.idtCameraChannel + '',
resourceName: sxt.channelName,
cameraId: sxt.channelId, //
channelCode: sxt.channelCode,
channelId: sxt.channelId,
channelName: sxt.channelName,
checkStatus: sxt.checkStatus + '',
gpsX: sxt.gpsX,
gpsY: sxt.gpsY,
idtCameraChannel: sxt.idtCameraChannel + '',
nodeName: sxt.nodeName,
parentId: sxt.parentId,
status: sxt.status + '',
})
})
submitApply(obj).then((res) => {
// applySuccess.value = false
console.log('摄像头申请================>', res)
if (item.id) {
sgcDel({ ids: [item.id] }).then((res1) => {
if (res1.data.msg === 'success') {
if (falgNum == 0 && sxt) {
message.success(
'申请提交成功,请到消息中心查看!'
)
sxt = false
}
mybus.emit('getSgcNum')
router.push({
path: '/DetailsPageconetent',
query: {
select: '组件服务',
},
})
}
})
} else {
if (
res.data.msg === 'success' &&
falgNum == 0 &&
sxt
) {
message.success('申请提交成功,请到消息中心查看!')
sxt = false
}
router.push({
path: '/DetailsPageconetent',
query: {
select: '组件服务',
},
})
}
})
}
})
})
console.log(
'提交数据==========================>',
formName,
ids
)
if (formName.system.length !== 0) {
if (formName.applicationSystem.length == 0) {
formName.applicationSystem = ''
}
submitApply(formName).then((res) => {
// applySuccess.value = false
message.success('申请提交成功,请到消息中心查看!')
console.log('能力申请================>', res)
if (res.data.code == 0) {
if (ids && ids.length > 0) {
sgcDel({ ids: ids }).then((res) => {
if (res.data.msg === 'success') {
mybus.emit('getSgcNum')
router.push({
path: '/DetailsPageconetent',
query: {
select: '组件服务',
},
})
}
})
} else {
router.push({
path: '/DetailsPageconetent',
query: {
select: '组件服务',
},
})
}
} else {
message.error('申请失败!')
}
})
}
}
})
} else {
if (!applyAll) { if (!applyAll) {
console.log(list.value[0].arr[0]) console.log(list.value[0].arr[0])
// //
@ -693,9 +576,9 @@
} }
}) })
} }
}
}) })
} }
}
// //
const startProcess = (processDefinitionKey, businessKey, formData) => { const startProcess = (processDefinitionKey, businessKey, formData) => {
var data = { var data = {

View File

@ -447,15 +447,13 @@
height: 0.24rem; height: 0.24rem;
width: 0.24rem; width: 0.24rem;
background: url('~@/assets/home/shenqing.png') no-repeat; background: url('~@/assets/home/shenqing.png') no-repeat;
background-size: contain; background-size: cover;
background-position: center; background-position: center;
} }
.fixedmount div:nth-child(2) p:nth-child(1) { .fixedmount div:nth-child(2) p:nth-child(1) {
height: 0.24rem; height: 0.24rem;
width: 0.24rem; width: 0.24rem;
background: url('~@/assets/home/shangjia.png') no-repeat; background: url('~@/assets/home/shangjia.png') no-repeat;
background-size: contain;
background-position: center;
} }
.ability-to-recommend-bottom { .ability-to-recommend-bottom {
width: 100%; width: 100%;

View File

@ -10,89 +10,43 @@
}} }}
</div> </div>
<div class="condition" :key="showKey"> <div class="condition" :key="showKey">
<ul <ul v-if="selectCardsname === '融合服务' || selectCardsname === '赋能场景'">
v-if=" <li v-for="(item, i) in orderList" :key="item.value" @click="changeOrder(i, item.value, item.orderType)">
selectCardsname === '融合服务' || selectCardsname === '赋能场景'
"
>
<li
v-for="(item, i) in orderList"
:key="item.value"
@click="changeOrder(i, item.value, item.orderType)"
>
{{ item.name }} {{ item.name }}
<span <span class="arrow" :class="item.orderType == 'ASC' ? 'down' : ''"></span>
class="arrow"
:class="item.orderType == 'ASC' ? 'down' : ''"
></span>
</li> </li>
</ul> </ul>
<ul v-else> <ul v-else>
<li <li v-for="item in selList" :key="item.value" @click="changeCondition(item.value)" v-show="
v-for="item in selList"
:key="item.value"
@click="changeCondition(item.value)"
v-show="
item.show && item.show &&
item.name !== '评分' && item.name !== '评分' &&
selectCardsname !== '数据资源' selectCardsname !== '数据资源'
" ">
>
{{ item.name }} {{ item.name }}
<span <span class="arrow" :class="item.value == selData ? 'down' : ''"></span>
class="arrow"
:class="item.value == selData ? 'down' : ''"
></span>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div <div class="result-list" v-for="(item, index) in resourceList.data" :key="item.index">
class="result-list"
v-for="(item, index) in resourceList.data"
:key="item.index"
>
<div class="item" :key="showKey"> <div class="item" :key="showKey">
<div <div class="left" style="display: flex; align-items: center" v-if="
class="left"
style="display: flex; align-items: center"
v-if="
item.type === '应用资源' && item.type === '应用资源' &&
item.infoList && item.infoList &&
item.infoList.filter((val) => val.attrType == '应用图片')[0] item.infoList.filter((val) => val.attrType == '应用图片')[0]
" ">
> <a-image :width="106" :preview="false" :src="
<a-image
:width="106"
:preview="false"
:src="
item.infoList.filter((val) => val.attrType == '应用图片')[0] item.infoList.filter((val) => val.attrType == '应用图片')[0]
.attrValue .attrValue
" " />
/>
</div> </div>
<div <div class="left" style="display: flex;
class="left" align-items: center"
style="display: flex; align-items: center" v-else-if="(selectCardsname === '融合服务' || selectCardsname === '赋能场景') && item.fuseAttrList && item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]">
v-else-if=" <a-image :width="106" :preview="false"
(selectCardsname === '融合服务' || :src="item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0].attrValue" />
selectCardsname === '赋能场景') &&
item.fuseAttrList &&
item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]
"
>
<a-image
:width="106"
:preview="false"
:src="
item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]
.attrValue
"
/>
</div> </div>
<div <div class="left" :class="
class="left"
:class="
item.type == '应用资源' item.type == '应用资源'
? 'yyzy' ? 'yyzy'
: !item.type : !item.type
@ -117,76 +71,35 @@
.attrValue == '业务组件' .attrValue == '业务组件'
? 'ywzj' ? 'ywzj'
: '' : ''
" " v-else-if="
v-else-if=" selectCardsname !== '基础设施' && selectCardsname !== '融合服务' && selectCardsname !== '赋能场景'
selectCardsname !== '基础设施' && "></div>
selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景'
"
></div>
<div class="left jcss" v-else-if="selectCardsname === '基础设施'"></div> <div class="left jcss" v-else-if="selectCardsname === '基础设施'"></div>
<div <div class="left rhfw" v-else-if="selectCardsname === '融合服务' || selectCardsname === '赋能场景'"></div>
class="left rhfw"
v-else-if="
selectCardsname === '融合服务' || selectCardsname === '赋能场景'
"
></div>
<div class="right"> <div class="right">
<div class="header"> <div class="header">
<span style="display: flex; align-items: center; width: 680px"> <span style="display: flex; align-items: center; width: 680px">
{{ item.name }} {{ item.name }}
<svg <svg t="1652322568870" class="icon" viewBox="0 0 3072 1024" version="1.1"
t="1652322568870" xmlns="http://www.w3.org/2000/svg" p-id="3062" width="40" height="40" v-if="item.applyState == '通过'"
class="icon" style="margin-left: 10px">
viewBox="0 0 3072 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3062"
width="40"
height="40"
v-if="item.applyState == '通过'"
style="margin-left: 10px; min-width: 40px"
>
<path <path
d="M2958.222222 0a113.777778 113.777778 0 0 1 113.777778 113.777778v796.444444a113.777778 113.777778 0 0 1-113.777778 113.777778H500.053333a113.777778 113.777778 0 0 1-85.617777-38.798222L32.824889 549.432889a56.888889 56.888889 0 0 1 0-74.922667L414.435556 38.798222A113.777778 113.777778 0 0 1 499.996444 0H2958.222222z m0 56.888889H500.053333a56.888889 56.888889 0 0 0-42.837333 19.399111L75.605333 512l381.610667 435.712a56.888889 56.888889 0 0 0 42.780444 19.399111H2958.222222a56.888889 56.888889 0 0 0 56.888889-56.888889V113.777778a56.888889 56.888889 0 0 0-56.888889-56.888889z" d="M2958.222222 0a113.777778 113.777778 0 0 1 113.777778 113.777778v796.444444a113.777778 113.777778 0 0 1-113.777778 113.777778H500.053333a113.777778 113.777778 0 0 1-85.617777-38.798222L32.824889 549.432889a56.888889 56.888889 0 0 1 0-74.922667L414.435556 38.798222A113.777778 113.777778 0 0 1 499.996444 0H2958.222222z m0 56.888889H500.053333a56.888889 56.888889 0 0 0-42.837333 19.399111L75.605333 512l381.610667 435.712a56.888889 56.888889 0 0 0 42.780444 19.399111H2958.222222a56.888889 56.888889 0 0 0 56.888889-56.888889V113.777778a56.888889 56.888889 0 0 0-56.888889-56.888889z"
fill="#d81e06" fill="#d81e06" p-id="3063"></path>
p-id="3063"
></path>
<path <path
d="M398.222222 398.222222a113.777778 113.777778 0 1 1 0 227.555556 113.777778 113.777778 0 0 1 0-227.555556z m0 56.888889a56.888889 56.888889 0 1 0 0 113.777778 56.888889 56.888889 0 0 0 0-113.777778z" d="M398.222222 398.222222a113.777778 113.777778 0 1 1 0 227.555556 113.777778 113.777778 0 0 1 0-227.555556z m0 56.888889a56.888889 56.888889 0 1 0 0 113.777778 56.888889 56.888889 0 0 0 0-113.777778z"
fill="#d81e06" fill="#d81e06" p-id="3064"></path>
p-id="3064"
></path>
<path <path
d="M1309.582222 491.064889v-273.066667h-505.173333v47.786667h455.338667v178.176h-378.88V342.926222h-49.152v358.4c0 55.978667 27.306667 84.650667 82.602666 84.650667h370.005334c28.672-1.365333 51.2-8.874667 66.218666-23.210667 16.384-17.749333 27.989333-68.266667 34.816-152.917333l-47.786666-15.018667-1.706667 26.737778c-4.664889 58.766222-12.970667 93.582222-24.917333 104.334222-10.24 8.192-23.893333 12.288-40.277334 12.288h-342.698666c-31.402667 0-47.104-15.701333-47.104-45.738666v-201.386667h428.714666z m430.08-307.2v102.4h-219.136v386.389333h48.469334v-46.421333h170.666666v178.858667h50.517334v-178.858667h167.936v41.642667h48.469333V286.264889h-216.405333v-102.4h-50.517334z m-170.666666 395.946667v-102.4h170.666666v102.4h-170.666666z m221.184 0v-102.4h167.936v102.4h-167.936z m-221.184-146.773334V332.003556h170.666666v101.034666h-170.666666z m221.184 0V332.003556h167.936v101.034666h-167.936z m733.866666-251.221333v44.373333h-165.205333v40.277334h165.205333v45.738666h-137.898666v39.594667h137.898666V398.222222h-184.32v40.96h417.792V398.222222h-186.368v-46.421333h144.725334v-39.594667h-144.725334v-45.738666h169.301334v-40.277334h-169.301334v-44.373333h-47.104z m-85.333333 429.397333h220.501333v49.834667h-220.501333v-49.834667z m220.501333-38.229333h-220.501333v-50.517333h220.501333v50.517333z m-220.501333 126.293333h220.501333v38.912c0 15.701333-8.874667 23.893333-25.258666 23.893334l-54.613334-2.048 11.605334 43.690666h57.344c38.229333 0 58.026667-18.432 58.026666-55.296v-266.24H2391.608889V807.822222h47.104v-108.544z m-222.549333-509.952l-34.816 33.450667c49.152 36.864 88.064 71.68 116.736 104.448l33.450666-34.133333a795.079111 795.079111 0 0 0-115.370666-103.765334z m-82.602667 201.386667h144.725333v299.690667c20.48-19.114667 41.642667-40.277333 64.853334-64.170667l12.970666 51.882667a923.932444 923.932444 0 0 1-121.514666 105.813333l-19.114667-43.690667c10.24-9.557333 15.701333-19.797333 15.701333-31.402666V437.816889h-97.621333v-47.104z" d="M1309.582222 491.064889v-273.066667h-505.173333v47.786667h455.338667v178.176h-378.88V342.926222h-49.152v358.4c0 55.978667 27.306667 84.650667 82.602666 84.650667h370.005334c28.672-1.365333 51.2-8.874667 66.218666-23.210667 16.384-17.749333 27.989333-68.266667 34.816-152.917333l-47.786666-15.018667-1.706667 26.737778c-4.664889 58.766222-12.970667 93.582222-24.917333 104.334222-10.24 8.192-23.893333 12.288-40.277334 12.288h-342.698666c-31.402667 0-47.104-15.701333-47.104-45.738666v-201.386667h428.714666z m430.08-307.2v102.4h-219.136v386.389333h48.469334v-46.421333h170.666666v178.858667h50.517334v-178.858667h167.936v41.642667h48.469333V286.264889h-216.405333v-102.4h-50.517334z m-170.666666 395.946667v-102.4h170.666666v102.4h-170.666666z m221.184 0v-102.4h167.936v102.4h-167.936z m-221.184-146.773334V332.003556h170.666666v101.034666h-170.666666z m221.184 0V332.003556h167.936v101.034666h-167.936z m733.866666-251.221333v44.373333h-165.205333v40.277334h165.205333v45.738666h-137.898666v39.594667h137.898666V398.222222h-184.32v40.96h417.792V398.222222h-186.368v-46.421333h144.725334v-39.594667h-144.725334v-45.738666h169.301334v-40.277334h-169.301334v-44.373333h-47.104z m-85.333333 429.397333h220.501333v49.834667h-220.501333v-49.834667z m220.501333-38.229333h-220.501333v-50.517333h220.501333v50.517333z m-220.501333 126.293333h220.501333v38.912c0 15.701333-8.874667 23.893333-25.258666 23.893334l-54.613334-2.048 11.605334 43.690666h57.344c38.229333 0 58.026667-18.432 58.026666-55.296v-266.24H2391.608889V807.822222h47.104v-108.544z m-222.549333-509.952l-34.816 33.450667c49.152 36.864 88.064 71.68 116.736 104.448l33.450666-34.133333a795.079111 795.079111 0 0 0-115.370666-103.765334z m-82.602667 201.386667h144.725333v299.690667c20.48-19.114667 41.642667-40.277333 64.853334-64.170667l12.970666 51.882667a923.932444 923.932444 0 0 1-121.514666 105.813333l-19.114667-43.690667c10.24-9.557333 15.701333-19.797333 15.701333-31.402666V437.816889h-97.621333v-47.104z"
fill="#d81e06" fill="#d81e06" p-id="3065"></path>
p-id="3065"
></path>
</svg> </svg>
</span> </span>
<div class="header-right"> <div class="header-right">
<div <div v-if="selectCardsname === '融合服务' || selectCardsname === '赋能场景'" class="label-content">
v-if=" <template v-if="item.fuseAttrList && item.fuseAttrList.filter((val) => val.attrType == '应用领域')[0]">
selectCardsname === '融合服务' || <span class="label"
selectCardsname === '赋能场景' v-for="(data, index) in item.fuseAttrList.filter((val) => val.attrType == '应用领域')[0].attrValue.split(';')"
" :key="index">
class="label-content"
>
<template
v-if="
item.fuseAttrList &&
item.fuseAttrList.filter(
(val) => val.attrType == '应用领域'
)[0]
"
>
<span
class="label"
v-for="(data, index) in item.fuseAttrList
.filter((val) => val.attrType == '应用领域')[0]
.attrValue.split(';')"
:key="index"
>
{{ data }} {{ data }}
</span> </span>
</template> </template>
@ -218,21 +131,13 @@
> >
<span>{{ item.shareType || '--' }}</span> <span>{{ item.shareType || '--' }}</span>
</div> --> </div> -->
<div <div v-if="
v-if=" selectCardsname !== '融合服务' && selectCardsname !== '赋能场景' && selectCardsname !== '基础设施'
selectCardsname !== '融合服务' && ">
selectCardsname !== '赋能场景' &&
selectCardsname !== '基础设施'
"
>
<span>{{ item.deptName || '--' }}</span> <span>{{ item.deptName || '--' }}</span>
</div> </div>
</div> </div>
<div <div v-if="selectCardsname !== '基础设施'" style="margin-top: 0.1rem" class="description">
v-if="selectCardsname !== '基础设施'"
style="margin-top: 0.1rem"
class="description"
>
<a-tooltip> <a-tooltip>
<template #title>{{ item.description }}</template> <template #title>{{ item.description }}</template>
{{ item.description || '--' }} {{ item.description || '--' }}
@ -241,32 +146,26 @@
<div class="btn"> <div class="btn">
<div class="bottom" v-if="selectCardsname !== '基础设施'"> <div class="bottom" v-if="selectCardsname !== '基础设施'">
<div> <div>
<div <div v-if="
v-if="
selectCardsname !== '数据资源' && selectCardsname !== '数据资源' &&
selectCardsname !== '融合服务' && selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景' selectCardsname !== '赋能场景'
" ">
>
浏览量{{ item.visits || 0 }} 浏览量{{ item.visits || 0 }}
</div> </div>
<div <div v-if="
v-if="
selectCardsname !== '数据资源' && selectCardsname !== '数据资源' &&
selectCardsname !== '融合服务' && selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景' && selectCardsname !== '赋能场景' &&
(selectCardsname !== '应用资源' || whoShow1.itShowQingDao) (selectCardsname !== '应用资源' || whoShow1.itShowQingDao)
" ">
>
申请量{{ item.applyCount || 0 }} 申请量{{ item.applyCount || 0 }}
</div> </div>
<div <div v-if="
v-if="
selectCardsname === '数据资源' && selectCardsname === '数据资源' &&
selectCardsname !== '融合服务' && selectCardsname !== '融合服务' &&
selectCardsname !== '赋能场景' selectCardsname !== '赋能场景'
" ">
>
数据量{{ item.sjlCount || 0 }} 数据量{{ item.sjlCount || 0 }}
</div> </div>
<div v-if="selectCardsname !== '数据资源'"> <div v-if="selectCardsname !== '数据资源'">
@ -285,59 +184,28 @@
</div> </div>
<div class="right" v-if="selectCardsname !== '基础设施'"> <div class="right" v-if="selectCardsname !== '基础设施'">
<div class="shopping" :key="shoppingKey"> <div class="shopping" :key="shoppingKey">
<template <template v-if="
v-if="
selectCardsname == '组件服务' || selectCardsname == '组件服务' ||
(selectCardsname == '应用资源' && whoShow1.itShowQingDao) (selectCardsname == '应用资源' && whoShow1.itShowQingDao)
" ">
> <span class="shopping-down" v-if="item.isInShoppingCart"></span>
<span <span class="shopping-on" v-else @click="addShoppingCart(item, index)"></span>
class="shopping-down"
v-if="item.isInShoppingCart"
></span>
<span
class="shopping-on"
v-else
@click="addShoppingCart(item, index)"
></span>
</template> </template>
</div> </div>
<div class="sc"> <div class="sc">
<span <span class="sc-down" v-if="item.isCollect == 'false'" @click="addCollect(item)"></span>
class="sc-down" <span class="sc-on" v-if="item.isCollect == 'true'" @click="addCollect(item)"></span>
v-if="item.isCollect == 'false'"
@click="addCollect(item)"
></span>
<span
class="sc-on"
v-if="item.isCollect == 'true'"
@click="addCollect(item)"
></span>
</div> </div>
<div <div class="shopping pk" :key="pk" v-show="
class="shopping pk"
:key="pk"
v-show="
cardType == '组件服务' && findComponentName(item, '智能算法') cardType == '组件服务' && findComponentName(item, '智能算法')
" ">
>
<span class="pk-on" @click="goComparePk(item, index)"></span> <span class="pk-on" @click="goComparePk(item, index)"></span>
</div> </div>
<a-button <a-button type="primary" @click="toView('details', item)" v-if="!whoShow1.itShowBaoTou">
type="primary"
@click="toView('details', item)"
v-if="!whoShow1.itShowBaoTou"
>
查看详情 查看详情
</a-button> </a-button>
<a-button <a-button style="margin-left: 10px" v-show="selectCardsname === '融合服务' || selectCardsname === '赋能场景'"
style="margin-left: 10px" @click="handleAKeyApplication(item)">
v-show="
selectCardsname === '融合服务' ||
selectCardsname === '赋能场景'
"
@click="handleAKeyApplication(item)"
>
一键申请 一键申请
</a-button> </a-button>
<!-- <a-button <!-- <a-button
@ -348,14 +216,10 @@
> >
免费试用 免费试用
</a-button> --> </a-button> -->
<a-button <a-button type="primary" @click="toView('apply', item)" v-show="
type="primary"
@click="toView('apply', item)"
v-show="
cardType == '组件服务' || cardType == '组件服务' ||
(cardType == '应用资源' && whoShow1.itShowQingDao) (cardType == '应用资源' && whoShow1.itShowQingDao)
" ">
>
{{ {{
item.shareCondition == '免批申请' ? '免批申请' : '立即申请' item.shareCondition == '免批申请' ? '免批申请' : '立即申请'
}} }}
@ -370,12 +234,7 @@
</div> </div>
</div> </div>
</div> </div>
<a-modal <a-modal v-model:visible="visible" title="视频预览" :width="750" destroyOnClose>
v-model:visible="visible"
title="视频预览"
:width="750"
destroyOnClose
>
<template #footer></template> <template #footer></template>
<div style="width: 100%; display: flex; justify-content: center"> <div style="width: 100%; display: flex; justify-content: center">
<div style="width: 100%; height: 100%"> <div style="width: 100%; height: 100%">
@ -734,11 +593,11 @@
// -- // --
// //
const handleAKeyApplication = (item ) => { const handleAKeyApplication = (item ) => {
let _applyList = [] let _applyList = [];
let fuseResourceList = item.fuseResourceList || [] let fuseResourceList = item.fuseResourceList || []
let jcssArray = fuseResourceList.filter((v) => v.type === '基础设施') let jcssArray = fuseResourceList.filter(v => v.type === '基础设施')
let otherArray = fuseResourceList.filter((v) => v.type !== '基础设施') let otherArray = fuseResourceList.filter(v => v.type !== '基础设施')
jcssArray = jcssArray.map((v) => { jcssArray = jcssArray.map(v => {
v = Object.assign(v, v.resource) v = Object.assign(v, v.resource)
return v return v
}) })
@ -763,7 +622,7 @@
} }
otherArray.map((v) => { otherArray.map((v) => {
let resource = v.resource || {} let resource = v.resource || {}
console.log('resource------------>', resource) console.log('resource------------>', resource);
let obj = { let obj = {
arr: [ arr: [
{ {
@ -819,10 +678,7 @@
if (!typeObj) { if (!typeObj) {
selData.value = 'total' selData.value = 'total'
} }
if ( if (typeObj && (typeObj.type === '融合服务' || typeObj.type === '赋能场景')) {
typeObj &&
(typeObj.type === '融合服务' || typeObj.type === '赋能场景')
) {
orderList.value = [ orderList.value = [
{ {
value: 'collectCount', value: 'collectCount',
@ -1104,7 +960,6 @@
margin-right: 0.1rem; margin-right: 0.1rem;
border-radius: 0.13rem; border-radius: 0.13rem;
background: #0087ff; background: #0087ff;
color: #fff;
} }
} }
} }

View File

@ -48,9 +48,6 @@
</div> </div>
<span v-if="item.title !== '区级'">{{ val.total }}</span> <span v-if="item.title !== '区级'">{{ val.total }}</span>
<span v-else> <span v-else>
<span style="display: inline-block; margin-right: 4px">
{{ val.total }}
</span>
<down-outlined v-show="!val.show" /> <down-outlined v-show="!val.show" />
<up-outlined v-show="val.show" /> <up-outlined v-show="val.show" />
</span> </span>

View File

@ -67,10 +67,6 @@
</a-button> </a-button>
</div> </div>
<i class="boundary"></i> <i class="boundary"></i>
<!-- 批量预览 -->
<a-button type="primary" @click="batchPreview" class="buttonAdd">
批量预览
</a-button>
<!-- 添加至申购车 --> <!-- 添加至申购车 -->
<a-button type="primary" @click="addShoppingCart" class="buttonAdd"> <a-button type="primary" @click="addShoppingCart" class="buttonAdd">
添加至申购车 添加至申购车
@ -147,7 +143,6 @@
</template> </template>
</a-table> </a-table>
</div> </div>
<!-- 单个预览弹窗 -->
<a-modal <a-modal
v-model:visible="visible" v-model:visible="visible"
title="视频预览" title="视频预览"
@ -161,26 +156,6 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
<!-- 批量预览弹窗 -->
<a-modal
wrapClassName="batch-preview-modal"
v-model:visible="batchVisible"
title="视频批量预览"
:width="1250"
destroyOnClose
@cancel="videoClean"
>
<template #footer></template>
<div class="batch-video">
<div
v-for="item in videoList"
:key="item.id"
style="width: 100%; height: 100%"
>
<vue3VideoPlay v-bind="item.options" />
</div>
</div>
</a-modal>
<a-modal <a-modal
wrapClassName="wrj" wrapClassName="wrj"
v-model:visible="wrjVisible" v-model:visible="wrjVisible"
@ -258,7 +233,7 @@
const router = useRouter() const router = useRouter()
const whoShow1 = ref(whoShow) const whoShow1 = ref(whoShow)
const options = reactive({ const options = reactive({
width: '900px', // width: '700px', //
height: '400px', // height: '400px', //
color: '#409eff', // color: '#409eff', //
title: '', // title: '', //
@ -284,16 +259,14 @@
'fullScreen', 'fullScreen',
], //, ], //,
}) })
const videoList = ref([])
let visible = ref(false) let visible = ref(false)
let batchVisible = ref(false)
const jcssType = ref(router.currentRoute.value.query.type) const jcssType = ref(router.currentRoute.value.query.type)
const pagination = ref({ const pagination = ref({
total: 0, total: 0,
current: 1, current: 1,
pageSize: 10, //10 pageSize: 10, //10
showSizeChanger: true, showSizeChanger: true,
pageSizeOptions: ['10', '30', '50', '100', '1000'], // pageSizeOptions: ['5', '10', '15', '20'], //
}) })
const mapSearchParam = ref({ const mapSearchParam = ref({
// //
@ -579,56 +552,6 @@
} }
} }
} }
const batchPreview = async function () {
if (selectedList.value.length > 0) {
const list = selectedList.value.splice(0, 4)
const length = list.length
videoList.value = []
for (let index = 0; index < length; index++) {
const param = {
key: list[index].channelId,
}
let ob = {
options: {
width: '600px', //
height: '350px', //
color: '#409eff', //
title: '', //
src: '', //
type: 'm3u8', //
muted: false, //
webFullScreen: false,
speedRate: ['0.75', '1.0', '1.25', '1.5', '2.0'], //
autoPlay: false, //
loop: false, //
mirror: false, //
ligthOff: false, //
volume: 0.3, //
control: true, //
controlBtns: [
'audioTrack',
'quality',
'speedRate',
'volume',
'setting',
'pip',
'pageFullScreen',
'fullScreen',
], //,
},
}
await getStreamByChannelCode(param).then((res) => {
ob.options.src = res.data.data
console.log('监测ob的变化', ob)
videoList.value.push(ob)
})
}
console.log('验证数据的准确性', videoList)
batchVisible.value = true
} else {
message.error('请选择需要预览的数据')
}
}
// //
const nullClick = () => { const nullClick = () => {
clickList.value[1].content = [] clickList.value[1].content = []
@ -639,19 +562,8 @@
// //
const clean = () => { const clean = () => {
mapSearchParam.value.cameraName = '' mapSearchParam.value.cameraName = ''
selectedList.value = []
selectedRowKeys.value = []
videoList.value = []
pagination.value.current = 1
mapSearchParam.value.pageNum = 1
pagination.value.pageSize = 10
getCamera() getCamera()
} }
const videoClean = () => {
selectedList.value = []
selectedRowKeys.value = []
videoList.value = []
}
// //
const dept = reactive({}) const dept = reactive({})
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
@ -797,8 +709,8 @@
const onSelectChange = (record, selected, selectedRows, nativeEvent) => { const onSelectChange = (record, selected, selectedRows, nativeEvent) => {
console.log('hahhahah', record, selected, selectedRows, nativeEvent) console.log('hahhahah', record, selected, selectedRows, nativeEvent)
if (selected) { if (selected) {
if (selectedRowKeys.value.length == 1000) { if (selectedRowKeys.value.length == 10) {
message.warning('最多只能添加1000个摄像头!') message.warning('最多只能添加10个摄像头!')
} else { } else {
selectedList.value.push(record) selectedList.value.push(record)
selectedRowKeys.value.push(record.channelCode || record.channelId) selectedRowKeys.value.push(record.channelCode || record.channelId)
@ -822,8 +734,8 @@
selectedList.value.push(val) selectedList.value.push(val)
selectedRowKeys.value.push(val.channelCode || val.channelId) selectedRowKeys.value.push(val.channelCode || val.channelId)
}) })
if (selectedRowKeys.value.length > 1000) { if (selectedRowKeys.value.length > 10) {
message.warning('最多只能添加1000个摄像头!') message.warning('最多只能添加10个摄像头!')
changeRows.map((val) => { changeRows.map((val) => {
selectedList.value = selectedList.value.filter( selectedList.value = selectedList.value.filter(
(item) => item.idtCameraChannel !== val.idtCameraChannel (item) => item.idtCameraChannel !== val.idtCameraChannel
@ -1000,15 +912,4 @@
overflow-y: scroll !important; overflow-y: scroll !important;
} }
} }
.batch-preview-modal {
.batch-video {
width: 100%;
display: grid;
grid-template-columns: 50% 50%;
grid-template-rows: 50% 50%;
justify-content: center;
grid-row-gap: 14px;
grid-column-gap: 20px;
}
}
</style> </style>

View File

@ -93,7 +93,7 @@
// name: '', // name: '',
// code: 'shinan', // code: 'shinan',
// className: 'classsn', // className: 'classsn',
// value: 1, // value: 0,
// }, // },
{ {
name: '市北区', name: '市北区',
@ -117,13 +117,13 @@
name: '李沧区', name: '李沧区',
code: 'licang', code: 'licang',
className: 'classlc', className: 'classlc',
value: 0.2, value: 0,
}, },
{ {
name: '城阳区', name: '城阳区',
code: 'chengyang', code: 'chengyang',
className: 'classcy', className: 'classcy',
value: 0.2, value: 0,
}, },
{ {
name: '即墨区', name: '即墨区',
@ -175,8 +175,6 @@
] ]
} else if (val.name === '市北区') { } else if (val.name === '市北区') {
geoCoordMap[val.name] = [val.coord[0], val.coord[1]] geoCoordMap[val.name] = [val.coord[0], val.coord[1]]
} else if (val.name === '城阳区') {
geoCoordMap[val.name] = [val.coord[0] - 0.057495, val.coord[1]]
} else if (val.name === '市南区') { } else if (val.name === '市南区') {
geoCoordMap[val.name] = [120.364482, 36.065671] geoCoordMap[val.name] = [120.364482, 36.065671]
} }
@ -324,12 +322,7 @@
let res = [] let res = []
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
let dataItem = data[i] let dataItem = data[i]
if ( if (dataItem.name === '西海岸' || dataItem.name === '崂山区') {
dataItem.name === '西海岸' ||
dataItem.name === '崂山区' ||
dataItem.name === '李沧区' ||
dataItem.name === '城阳区'
) {
let fromCoord = geoCoordMap[dataItem.name] let fromCoord = geoCoordMap[dataItem.name]
let toCoord = [120.364482, 36.065671] let toCoord = [120.364482, 36.065671]
if (fromCoord && toCoord) { if (fromCoord && toCoord) {
@ -351,12 +344,7 @@
let res = [] let res = []
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
let dataItem = data[i] let dataItem = data[i]
if ( if (dataItem.name === '西海岸' || dataItem.name === '崂山区') {
dataItem.name === '西海岸' ||
dataItem.name === '崂山区' ||
dataItem.name === '李沧区' ||
dataItem.name === '城阳区'
) {
let fromCoord = [120.364482, 36.065671] let fromCoord = [120.364482, 36.065671]
let toCoord = geoCoordMap[dataItem.name] let toCoord = geoCoordMap[dataItem.name]
if (fromCoord && toCoord) { if (fromCoord && toCoord) {
@ -378,12 +366,7 @@
let res = [] let res = []
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
let dataItem = data[i] let dataItem = data[i]
if ( if (dataItem.name !== '西海岸' && dataItem.name !== '崂山区') {
dataItem.name !== '西海岸' &&
dataItem.name !== '崂山区' &&
dataItem.name !== '李沧区' &&
dataItem.name !== '城阳区'
) {
let fromCoord = [120.364482, 36.065671] let fromCoord = [120.364482, 36.065671]
let toCoord = geoCoordMap[dataItem.name] let toCoord = geoCoordMap[dataItem.name]
if (fromCoord && toCoord) { if (fromCoord && toCoord) {
@ -575,7 +558,7 @@
symbolOffset: [0, -20], symbolOffset: [0, -20],
data: [ data: [
{ {
name: '', name: '西海岸',
value: geoCoordMap['西海岸'].concat([10]), value: geoCoordMap['西海岸'].concat([10]),
}, },
], ],
@ -612,84 +595,10 @@
symbolOffset: [0, -20], symbolOffset: [0, -20],
data: [ data: [
{ {
name: '', name: '崂山区',
value: geoCoordMap['崂山区'].concat([10]), value: geoCoordMap['崂山区'].concat([10]),
}, },
], ],
},
{
type: 'scatter',
coordinateSystem: 'geo',
zlevel: 2,
rippleEffect: {
period: 4,
brushType: 'stroke',
scale: 4,
},
label: {
normal: {
show: true,
position: 'bottom',
//offset:[5, 0],
color: '#fbd500',
formatter: '{b}',
textStyle: {
color: '#fbd500',
fontSize: 18,
fontWeight: 600,
},
},
emphasis: {
show: true,
color: '#f60',
},
},
symbol: 'image://' + require('@/assets/home/yb.png'),
symbolSize: 40,
symbolOffset: [0, -20],
data: [
{
name: '',
value: geoCoordMap['城阳区'].concat([10]),
},
],
},
{
type: 'scatter',
coordinateSystem: 'geo',
zlevel: 2,
rippleEffect: {
period: 4,
brushType: 'stroke',
scale: 4,
},
label: {
normal: {
show: true,
position: 'bottom',
//offset:[5, 0],
color: '#fbd500',
formatter: '{b}',
textStyle: {
color: '#fbd500',
fontSize: 18,
fontWeight: 600,
},
},
emphasis: {
show: true,
color: '#f60',
},
},
symbol: 'image://' + require('@/assets/home/yb.png'),
symbolSize: 40,
symbolOffset: [0, -20],
data: [
{
name: '',
value: geoCoordMap['李沧区'].concat([10]),
},
],
} }
) )
}) })
@ -703,93 +612,11 @@
} }
onMounted(() => { onMounted(() => {
initMap() initMap()
myChart.on('mouseover', function (params) { myChart.on('mouseover', function () {
console.log(params.value)
myChart.dispatchAction({ myChart.dispatchAction({
type: 'downplay', type: 'downplay',
}) })
let flag = true
if (
params.value[0] == '119.825774' &&
params.value[1] == '35.739174000000006'
) {
if (option.series[8].data[0].name == '西海岸') {
flag = false
}
option.series[8].data[0].name = '西海岸'
option.series[9].data[0].name = ''
option.series[10].data[0].name = ''
option.series[11].data[0].name = ''
if (flag) {
myChart.clear()
myChart.setOption(option, true)
}
} else if (
params.value[0] == '120.579994' &&
params.value[1] == '36.189191'
) {
if (option.series[9].data[0].name == '崂山区') {
flag = false
}
option.series[8].data[0].name = ''
option.series[9].data[0].name = '崂山区'
option.series[10].data[0].name = ''
option.series[11].data[0].name = ''
if (flag) {
myChart.clear()
myChart.setOption(option, true)
}
} else if (
params.value[0] == '120.421977' &&
params.value[1] == '36.18555'
) {
if (option.series[11].data[0].name == '李沧区') {
flag = false
}
option.series[8].data[0].name = ''
option.series[9].data[0].name = ''
option.series[10].data[0].name = ''
option.series[11].data[0].name = '李沧区'
if (flag) {
myChart.clear()
myChart.setOption(option, true)
}
} else if (
params.value[0] == '120.272216' &&
params.value[1] == '36.27479'
) {
if (option.series[10].data[0].name == '城阳区') {
flag = false
}
option.series[8].data[0].name = ''
option.series[9].data[0].name = ''
option.series[10].data[0].name = '城阳区'
option.series[11].data[0].name = ''
if (flag) {
myChart.clear()
myChart.setOption(option, true)
}
}
}) })
// myChart.on('mouseout', function (params) {
// console.log(params)
// switch (params.name) {
// case '西':
// option.series[8].data[0].name = ''
// break
// case '':
// option.series[9].data[0].name = ''
// break
// case '':
// option.series[10].data[0].name = ''
// break
// case '':
// option.series[11].data[0].name = ''
// break
// }
// myChart.clear()
// myChart.setOption(option, true)
// })
myChart.on('click', function (params) { myChart.on('click', function (params) {
console.log(params) console.log(params)
params.event.event.stopPropagation() params.event.event.stopPropagation()

View File

@ -1,20 +1,32 @@
<template> <template>
<div class="list-box"> <div class="list-box">
<div class="list-item" v-for="(item, i) in newDataList" :key="i" @click.stop="showChildren(item)"> <div
class="list-item"
v-for="(item, i) in newDataList"
:key="i"
@click.stop="showChildren(item)"
>
<a-tooltip placement="top" :title="item.title" arrow-point-at-center> <a-tooltip placement="top" :title="item.title" arrow-point-at-center>
<div :class="[ <div
:class="[
newClickData.title === item.title ? 'select' : '', newClickData.title === item.title ? 'select' : '',
level === 1 ? 'parent' : '', level === 1 ? 'parent' : '',
judgeLeaf(item) ? 'leaf' : '', judgeLeaf(item) ? 'leaf' : '',
]" class="list-text"> ]"
class="list-text"
>
{{ item.title }} {{ item.title }}
<DownOutlined v-show="!item.show && !judgeLeaf(item)" /> <DownOutlined v-show="!item.show && !judgeLeaf(item)" />
<UpOutlined v-show="item.show && !judgeLeaf(item)" /> <UpOutlined v-show="item.show && !judgeLeaf(item)" />
</div> </div>
</a-tooltip> </a-tooltip>
<div style="margin-left: 10px" v-if="!judgeLeaf(item) && item.show"> <div style="margin-left: 10px" v-if="!judgeLeaf(item) && item.show">
<abilityDocTree :dataList="item.children" @tree-click="handleTreeItem" :clickData="newClickData" <abilityDocTree
:level="newLevel + 1"></abilityDocTree> :dataList="item.children"
@tree-click="handleTreeItem"
:clickData="newClickData"
:level="newLevel + 1"
></abilityDocTree>
</div> </div>
</div> </div>
</div> </div>

View File

@ -48,7 +48,7 @@
</div> </div>
<!-- 联系我们 --> <!-- 联系我们 -->
<div class="img-bg callus-box"> <div class="img-bg callus-box">
<!-- <div class="title" style="margin-bottom: 20px"> <div class="title" style="margin-bottom: 20px">
<div class="text text-white">联系我们</div> <div class="text text-white">联系我们</div>
<div class="line line-white"></div> <div class="line line-white"></div>
</div> </div>
@ -61,7 +61,7 @@
手机号 手机号
<span>0530-0000000</span> <span>0530-0000000</span>
</p> </p>
</div> --> </div>
</div> </div>
<!-- 能力上架弹窗 --> <!-- 能力上架弹窗 -->
<a-modal <a-modal
@ -95,6 +95,11 @@
> >
<div class="title">组件类型选择</div> <div class="title">组件类型选择</div>
<div class="component-type-content"> <div class="component-type-content">
<!-- <a-checkbox-group
v-model:value="value1"
name="checkboxgroup"
:options="componentType"
/> -->
<a-radio-group v-model:value="componentTypeValue"> <a-radio-group v-model:value="componentTypeValue">
<a-radio <a-radio
@click="componentTypeValueFunction(item)" @click="componentTypeValueFunction(item)"
@ -118,7 +123,9 @@
import TheOverallProcess from './TheOverallProcess.vue' import TheOverallProcess from './TheOverallProcess.vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
const router = useRouter() const router = useRouter()
const seviceList = ref([ const seviceList = ref([
{ {
name: '组件服务', name: '组件服务',
@ -144,6 +151,7 @@
{ {
name: '基础设施', name: '基础设施',
img: require('@/assets/menu/service-infrastructure.png'), img: require('@/assets/menu/service-infrastructure.png'),
list: ['视频资源', '云资源', '感知资源'], list: ['视频资源', '云资源', '感知资源'],
imgBG: require('../../../assets/menu/imgBG.png'), imgBG: require('../../../assets/menu/imgBG.png'),
width: '124px', width: '124px',
@ -151,11 +159,13 @@
{ {
name: '数据资源', name: '数据资源',
img: require('@/assets/menu/service-data.png'), img: require('@/assets/menu/service-data.png'),
list: ['政务信息资源'], list: ['政务信息资源'],
imgBG: require('../../../assets/menu/imgBG-long.png'), imgBG: require('../../../assets/menu/imgBG-long.png'),
width: '200px', width: '200px',
}, },
]) ])
const imgList = ref([ const imgList = ref([
{ {
name: '能力上架', name: '能力上架',
@ -246,12 +256,18 @@
componentTypeValue.value = '' componentTypeValue.value = ''
console.log(e) console.log(e)
} }
// //
const toWhere = (data) => { const toWhere = (data) => {
console.log(data, 'wwwwwww') console.log(data, 'wwwwwww')
if (data === '能力上架') { if (data === '能力上架') {
visible.value = true visible.value = true
} else if (data === '能力申请') { } else if (data === '能力申请') {
const newpage = router.resolve({
path: '/addApplication', //
})
window.open(newpage.href, '_blank')
} else if (data === '需求发布') {
const newpage = router.resolve({ const newpage = router.resolve({
path: '/DetailsPageconetent', path: '/DetailsPageconetent',
query: { query: {
@ -259,11 +275,6 @@
}, },
}) })
window.location.href = newpage.href window.location.href = newpage.href
} else if (data === '需求发布') {
const newpage = router.resolve({
path: '/addApplication', //
})
window.open(newpage.href, '_blank')
} else if (data === '资源下架') { } else if (data === '资源下架') {
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle')) window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
const newpage = router.resolve({ const newpage = router.resolve({
@ -290,22 +301,18 @@
height: 0.16rem; height: 0.16rem;
width: 0.16rem; width: 0.16rem;
} }
.ant-radio-inner::after { .ant-radio-inner::after {
background-color: unset; background-color: unset;
background: url('~@/assets/personalCenter/xuanzhong.png') no-repeat; background: url('~@/assets/personalCenter/xuanzhong.png') no-repeat;
background-size: cover; background-size: cover;
background-position: center; background-position: center;
} }
.ant-modal-content { .ant-modal-content {
border-radius: 0.1rem; border-radius: 0.1rem;
.ability-to-type, .ability-to-type,
.component-type { .component-type {
display: flex; display: flex;
margin-top: 0.2rem; margin-top: 0.2rem;
.title { .title {
white-space: nowrap; white-space: nowrap;
margin-right: 0.2rem; margin-right: 0.2rem;
@ -313,13 +320,11 @@
align-items: center; align-items: center;
height: 0.26rem; height: 0.26rem;
} }
.component-type-content { .component-type-content {
width: 100%; width: 100%;
height: unset; height: unset;
border: unset; border: unset;
background: unset; background: unset;
.ant-radio-group { .ant-radio-group {
display: grid; display: grid;
grid-template-columns: 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr;
@ -335,7 +340,6 @@
height: unset; height: unset;
border: unset; border: unset;
background: unset; background: unset;
div { div {
margin-right: 0.15rem; margin-right: 0.15rem;
cursor: pointer; cursor: pointer;
@ -369,7 +373,6 @@
border: 0; border: 0;
text-align: center; text-align: center;
padding-bottom: 0.2rem; padding-bottom: 0.2rem;
button { button {
margin-right: 0.2rem; margin-right: 0.2rem;
border-radius: 0.08rem; border-radius: 0.08rem;
@ -451,28 +454,23 @@
margin: 0 auto; margin: 0 auto;
} }
} }
.callus-box { .callus-box {
width: 1920px; width: 1920px;
height: 214px; height: 214px;
background-size: 100% 100%; background-size: 100% 100%;
background-image: url('../../../assets/menu/callus.png'); background-image: url('../../../assets/menu/callus.png');
.list-box { .list-box {
width: 1560px; width: 1560px;
// height: 350px; // height: 350px;
margin: 0 auto; margin: 0 auto;
p { p {
font-size: 24px; font-size: 24px;
color: #ffffff; color: #ffffff;
font-weight: bold; font-weight: bold;
span { span {
font-size: 30px; font-size: 30px;
} }
} }
p:nth-child(1) { p:nth-child(1) {
margin-right: 100px; margin-right: 100px;
} }
@ -552,11 +550,9 @@
margin: 0 0 20px; margin: 0 0 20px;
background-size: 100% 100%; background-size: 100% 100%;
} }
.item-v:nth-child(2n) { .item-v:nth-child(2n) {
margin-left: 16px; margin-left: 16px;
} }
// .item-v:last-child { // .item-v:last-child {
// width: 200px; // width: 200px;
// } // }

View File

@ -1,33 +1,46 @@
<template> <template>
<home-header></home-header> <home-header></home-header>
<div class="menu-container"> <div class="menu-container">
<div class="menu-box">
<div id="container" class="content-menu"> <div id="container" class="content-menu">
<div class="left"> <div class="left">
<div class="first-title-text doc" :style="{ color: '技术文档' === titleData.name ? '#0058e1' : '' }" <div
@click="changeName({ name: '技术文档' })"> class="first-title-text"
技术文档 v-for="(data, i) in titleList"
:key="i"
@click="changeName(data)"
:style="{ color: data.name === titleData.name ? '#0058e1' : '' }"
>
<div class="img" :class="data.className"></div>
{{ data.name }}
</div> </div>
<abilityDocTree style="max-height:320px;overflow-y:auto" :dataList="treeArray" @treeClick="treeClick" <abilityDocTree
:clickData="clickData"></abilityDocTree> :dataList="treeArray"
@treeClick="treeClick"
:clickData="clickData"
></abilityDocTree>
</div> </div>
<div class="first-title-text new-guide-box" :style="{ color: '使用手册' === titleData.name ? '#0058e1' : '' }"
@click="changeName({ name: '使用手册' })">
<div class="guide-text">使用手册</div>
</div>
<!-- 技术文档 --> <!-- 技术文档 -->
<div class="right" v-if="titleData.name !== '使用手册'"> <div class="right" v-if="titleData.name !== '新手指引'">
<div style="height: 100%"> <div style="height: 100%">
<iframe name="iframeName" width="1300" height="100%" id="iframeId" :frameborder="0" <iframe
:src="doc_base_url + clickData.doc"></iframe> name="iframeName"
width="1300"
height="100%"
id="iframeId"
:frameborder="0"
:src="doc_base_url + clickData.doc"
></iframe>
</div> </div>
</div> </div>
<!-- 使用手册 -->
<div class="manual"><p>使用手册</p></div>
</div>
<menuBook v-if="titleData.name === '新手指引'"></menuBook>
</div> </div>
<menuBook v-if="titleData.name === '使用手册'"></menuBook>
</div> </div>
<home-footer v-if="footShow"></home-footer> <home-footer></home-footer>
</template> </template>
<script setup> <script setup>
import HomeHeader from '@/views/home/components/header' import HomeHeader from '@/views/home/components/header'
@ -41,7 +54,7 @@ import HomeFooter from '@/views/newHome/components/Footer'
const titleList = ref([ const titleList = ref([
{ {
name: '使用手册', name: '新手指引',
className: 'newGuide', className: 'newGuide',
}, },
{ {
@ -57,7 +70,6 @@ let typeList = ['组件服务', '应用资源', '基础设施', '数据资源',
let doc_base_url = ref(window.SITE_CONFIG['frontUrl']) let doc_base_url = ref(window.SITE_CONFIG['frontUrl'])
const treeClick = (item) => { const treeClick = (item) => {
footShow.value = false
clickData.value = item clickData.value = item
console.log('clickData------------>', item) console.log('clickData------------>', item)
titleData.value = titleList.value[1] titleData.value = titleList.value[1]
@ -77,16 +89,13 @@ const getTreeData = () => {
message.error(err) message.error(err)
}) })
} }
const footShow = ref(true)
const changeName = (item) => { const changeName = (item) => {
titleData.value = item titleData.value = item
if (item.name == '使用手册') { if (item.name == '新手指引') {
footShow.value = true
clickData.value = {} clickData.value = {}
} }
if (item.name == '技术文档') { if (item.name == '技术文档') {
footShow.value = false
if (!clickData.value.title) { if (!clickData.value.title) {
clickData.value = {} clickData.value = {}
treeArray.value = [] treeArray.value = []
@ -141,6 +150,7 @@ onMounted(() => {
<style scoped lang="less"> <style scoped lang="less">
.menu-box { .menu-box {
// overflow: hidden;
height: 100%; height: 100%;
} }
@ -157,15 +167,9 @@ onMounted(() => {
} }
} }
.doc {
font-weight: bold;
}
.menu-container { .menu-container {
width: 100%; width: 100%;
padding-top: 0.74rem; padding-top: 0.74rem;
min-height: 1000px;
position: relative;
} }
.content-menu { .content-menu {
@ -174,77 +178,48 @@ onMounted(() => {
justify-content: flex-start; justify-content: flex-start;
margin: 0 auto; margin: 0 auto;
box-sizing: border-box; box-sizing: border-box;
// position: fixed;
// left: 50%;
// bottom: 0;
// transform: translateX(-50%);
// top: 0.6rem;
// top: 0;
} }
.left { .left {
z-index: 10;
width: 200px; width: 200px;
padding-left: 10px; padding: 20px;
padding-top: 10px; margin-right: 20px;
background: #f4f5f8; background: rgba(244, 245, 248, 1);
position: absolute; overflow-y: scroll;
top: 300px; position: fixed;
left: 85px; top: 200px;
max-height: 400px; left: 90px;
}
.new-guide-box {
position: absolute;
top: 300px;
right: 205px;
width: 74px;
height: 136px;
background: url('~@/assets/menu/new-bg.png') no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
padding-bottom: 0;
}
.guide-text {
width: 25px;
text-align: center;
word-wrap: break-word;
font-size: 20px;
color: #0058e1;
} }
.right { .right {
width: 1300px; width: 1300px;
height: calc(100% - 20px); height: calc(100% - 20px);
position: absolute; position: absolute;
top: 10px;
left: 300px;
min-height: 600px; min-height: 600px;
left: 50%;
transform: translateX(-50%);
} }
.left {
width: 200px;
padding-left: 10px;
padding-top: 10px;
background: #f4f5f8;
position: absolute;
top: 300px;
left: 85px;
max-height: 400px;
}
.manual { .manual {
cursor: pointer; cursor: pointer;
z-index: 10; z-index: 10;
width: 74px; width: 74px;
height: 136px; height: 136px;
position: absolute; position: fixed;
top: 200px; top: 200px;
right: 140px; right: 200px;
background-size: 100% 100%; background-size: 100% 100%;
background-image: url('../../assets/menu/manual.png'); background-image: url('../../assets/menu/manual.png');
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding: unset !important; padding: unset !important;
p { p {
color: #005be1; color: #005be1;
font-size: 20px; font-size: 20px;
@ -257,11 +232,6 @@ onMounted(() => {
right: 0 !important; right: 0 !important;
} }
.newGuide {
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
background-size: 100%;
}
.content { .content {
right: 16rem !important; right: 16rem !important;
left: 0 !important; left: 0 !important;
@ -273,10 +243,14 @@ onMounted(() => {
margin-right: 8px; margin-right: 8px;
} }
.rela { .doc {
width: 100%; background: url('~@/assets/capabilityCloud/doc.png') no-repeat;
height: 100%; background-size: 100%;
position: relative; }
.newGuide {
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
background-size: 100%;
} }
.new-menu-box { .new-menu-box {
@ -285,4 +259,10 @@ onMounted(() => {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.rela {
width: 100%;
height: 100%;
position: relative;
}
</style> </style>

View File

@ -560,7 +560,7 @@
height: 0.24rem; height: 0.24rem;
width: 0.24rem; width: 0.24rem;
background: url('~@/assets/home/shenqing.png') no-repeat; background: url('~@/assets/home/shenqing.png') no-repeat;
background-size: contain; background-size: cover;
background-position: center; background-position: center;
} }
@ -568,7 +568,5 @@
height: 0.24rem; height: 0.24rem;
width: 0.24rem; width: 0.24rem;
background: url('~@/assets/home/shangjia.png') no-repeat; background: url('~@/assets/home/shangjia.png') no-repeat;
background-size: contain;
background-position: center;
} }
</style> </style>

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44 * @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-04 10:41:06 * @LastEditTime: 2022-08-01 10:49:31
* @Description:我的申请 能力申请 查看详情 * @Description:我的申请 能力申请 查看详情
--> -->
<template> <template>
@ -52,37 +52,7 @@
<span class="img"></span> <span class="img"></span>
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</div> </div>
<div
style="
display: flex;
justify-content: space-between;
align-items: center;
"
>
<div class="oddNumbers">子单号{{ item.instanceId }}</div> <div class="oddNumbers">子单号{{ item.instanceId }}</div>
<div style="display: flex; align-items: center">
<a-button
type="primary"
@click="modify(props.refObj.id, item)"
v-if="item.backToFirst"
>
修改
</a-button>
<a-popconfirm
v-if="!item.ended"
title="是否终止此流程?"
ok-text="是"
cancel-text="否"
@confirm="endThis(item.instanceId)"
@cancel="cancel"
>
<a-button type="primary" danger style="margin-left: 10px">
流程终止
</a-button>
</a-popconfirm>
</div>
</div>
<div class="box" v-if="item.list.length > 0"> <div class="box" v-if="item.list.length > 0">
<div class="ability" v-for="val in item.list" :key="val.id"> <div class="ability" v-for="val in item.list" :key="val.id">
<div <div
@ -112,8 +82,7 @@
<div class="right"> <div class="right">
<div class="ability-top"> <div class="ability-top">
<div class="name"> <div class="name">
<div class="name"> {{ val.name }}
<span class="channelName">{{ val.name }}</span>
<span class="type"> <span class="type">
{{ {{
val.type == '应用资源' val.type == '应用资源'
@ -138,7 +107,6 @@
}} }}
</span> </span>
</div> </div>
</div>
<div></div> <div></div>
<!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> --> <!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> -->
</div> </div>
@ -159,7 +127,7 @@
<div class="right"> <div class="right">
<div class="ability-top"> <div class="ability-top">
<div class="name"> <div class="name">
<span class="channelName">{{ val.channelName }}</span> {{ val.channelName }}
<span class="type">基础设施</span> <span class="type">基础设施</span>
</div> </div>
</div> </div>
@ -187,24 +155,11 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref, defineProps, reactive } from 'vue' import { ref, defineProps } from 'vue'
import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue'
import { endProcess, getApplyForm } from '@/api/personalCenter.js'
import { useRouter } from 'vue-router'
const router = useRouter()
const backUrl = ref(window.SITE_CONFIG.apiURL + '/') const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
const props = defineProps({ const props = defineProps({
refObj: { type: Object, default: null }, refObj: { type: Object, default: null },
}) })
const dept = reactive({})
// eslint-disable-next-line no-undef
if (infrastructure) {
// eslint-disable-next-line no-undef
dept.deptId = infrastructure.deptId
// eslint-disable-next-line no-undef
dept.deptName = infrastructure.deptName
}
const showThis = () => { const showThis = () => {
window.open( window.open(
window.SITE_CONFIG.previewUrl + window.SITE_CONFIG.previewUrl +
@ -214,80 +169,6 @@
} }
const showArr = ref([]) const showArr = ref([])
console.log(props.refObj, '=====================================') console.log(props.refObj, '=====================================')
const endThis = (instanceId) => {
endProcess({ instanceId: instanceId }).then((res) => {
if (res.data.code == 0) {
message.success('流程终止成功!')
mybus.emit('closeModal', { type: '能力申请', index: 0 })
} else {
message.warning('流程终止失败!')
}
})
}
const modify = (id, item) => {
getApplyForm(id).then((res) => {
console.log('修改==============>', res.data.data, item)
if (item.list.length > 0) {
let arr = []
item.list.map((val) => {
arr.push({
delFlag: val.delFlag,
description: val.description,
resourceId: val.id,
resourceName: val.name,
time: val.createDate,
type: val.type,
componentType:
(val.infoList.filter((val) => val.attrType == '组件类型')[0] &&
val.infoList.filter((val) => val.attrType == '组件类型')[0]
.attrValue) ||
'',
})
})
localStorage.setItem(
'applyList',
JSON.stringify([
{
arr: arr,
deptId: item.name,
deptName: item.name,
},
])
)
router.push({
path: '/apply',
query: {
id: id,
taskId: item.instanceId,
},
})
} else if (item.list2.length > 0) {
let arr = [
{
arr: [
{
description: '',
note1: JSON.stringify(item.list2),
resourceId: '1522550195055828996',
resourceName: '摄像头列表',
type: '基础设施',
},
],
deptId: dept.deptId,
deptName: dept.deptName,
},
]
localStorage.setItem('applyList', JSON.stringify(arr))
router.push({
path: '/apply',
query: {
id: id,
taskId: item.instanceId,
},
})
}
})
}
if (props.refObj.resourceApplication) { if (props.refObj.resourceApplication) {
showArr.value = [] showArr.value = []
for (const key in props.refObj.resourceApplication) { for (const key in props.refObj.resourceApplication) {
@ -296,7 +177,6 @@
obj.name = key obj.name = key
props.refObj.resourceApplication[key].map((item) => { props.refObj.resourceApplication[key].map((item) => {
obj.instanceId = item.instanceId obj.instanceId = item.instanceId
obj.backToFirst = item.backToFirst
obj.ended = item.ended obj.ended = item.ended
obj.approveStatus = item.approveStatus obj.approveStatus = item.approveStatus
if (item.resources.length > 0) { if (item.resources.length > 0) {
@ -438,21 +318,15 @@
.name { .name {
width: 6rem; width: 6rem;
height: 0.2rem; height: 0.2rem;
display: flex;
.channelName {
max-width: 5rem;
height: 0.2rem;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 1; -webkit-line-clamp: 1;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
word-break: break-all; word-break: break-all;
}
.type { .type {
background: #0087ff; background: #0087ff;
color: #fff; color: #fff;
line-height: 14px;
padding: 2px 10px; padding: 2px 10px;
border-radius: 10px; border-radius: 10px;
margin-left: 0.1rem; margin-left: 0.1rem;

View File

@ -304,7 +304,7 @@
<script setup> <script setup>
// import qs from 'qs' // import qs from 'qs'
import { onMounted, reactive, ref, onBeforeUnmount } from 'vue' import { onMounted, reactive, ref } from 'vue'
import { import {
getMyProcessInstancePage, getMyProcessInstancePage,
// getTaskHandleDetailInfo, // getTaskHandleDetailInfo,
@ -325,7 +325,6 @@
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import ApplyDetails from '@/views/personalCenter/components/ApplyDetails' import ApplyDetails from '@/views/personalCenter/components/ApplyDetails'
import mybus from '@/myplugins/mybus'
const router = useRouter() const router = useRouter()
let typeList = ref([ let typeList = ref([
'能力申请', '能力申请',
@ -756,13 +755,6 @@
} }
}) })
} }
mybus.on('closeModal', (obj) => {
detailsVisible.value = false
changeType(obj.type, obj.index)
})
onBeforeUnmount(() => {
mybus.off('closeModal')
})
onMounted(() => { onMounted(() => {
getApplyList() getApplyList()
}) })

View File

@ -2,27 +2,12 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44 * @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-02 15:48:15 * @LastEditTime: 2022-07-14 16:25:57
* @Description:我的申请 能力申请 查看详情 * @Description:我的申请 能力申请 查看详情
--> -->
<template> <template>
<div class="top"> <div class="top">
<div
style="display: flex; justify-content: space-between; align-items: center"
>
<div class="title">基本信息</div> <div class="title">基本信息</div>
<a-popconfirm
v-if="!props.refObj.ended"
title="是否终止此流程?"
ok-text="是"
cancel-text="否"
@confirm="endThis"
@cancel="cancel"
>
<a-button type="primary" danger>流程终止</a-button>
</a-popconfirm>
<div v-else></div>
</div>
<div class="main"> <div class="main">
<div> <div>
<p class="item"> <p class="item">
@ -44,23 +29,10 @@
</template> </template>
<script setup> <script setup>
import { ref, defineProps } from 'vue' import { ref, defineProps } from 'vue'
import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue'
import { endProcess } from '@/api/personalCenter.js'
const props = defineProps({ const props = defineProps({
refObj: { type: Object, default: null }, refObj: { type: Object, default: null },
}) })
console.log(props.refObj, '=====================================') console.log(props.refObj, '=====================================')
const endThis = () => {
endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => {
if (res.data.code == 0) {
message.success('流程终止成功!')
mybus.emit('closeModal', { type: '能力上架', index: 2 })
} else {
message.warning('流程终止失败!')
}
})
}
// if (props.refObj.resourceApplication) { // if (props.refObj.resourceApplication) {
// showArr.value = [] // showArr.value = []
// for (const key in props.refObj.resourceApplication) { // for (const key in props.refObj.resourceApplication) {

View File

@ -98,24 +98,9 @@
label="应用领域" label="应用领域"
name="detailsField" name="detailsField"
style="width: 6.93rem" style="width: 6.93rem"
:rules="[ :rules="[{ required: true, message: '请选择应用领域' }]"
{
required:
formName.detailsType === '应用资源' ||
formName.detailsType === '组件服务'
? true
: false,
message: '请选择应用领域',
},
]"
> >
<a-select <a-select
:disabled="
formName.detailsType === '应用资源' ||
formName.detailsType === '组件服务'
? false
: true
"
v-model:value="formName.detailsField" v-model:value="formName.detailsField"
:options="applicationSceneOpthion" :options="applicationSceneOpthion"
mode="tags" mode="tags"