guhongwei %!s(int64=2) %!d(string=hai) anos
pai
achega
a28a84f8c2
Modificáronse 62 ficheiros con 123 adicións e 1123 borrados
  1. 0 14
      src/components/btn-1.vue
  2. 0 30
      src/components/c-dialog.vue
  3. 0 220
      src/components/c-form.vue
  4. 0 172
      src/components/c-search.vue
  5. 0 333
      src/components/c-table.vue
  6. 0 103
      src/components/c-upload.vue
  7. 1 1
      src/components/common/demand/info.vue
  8. 1 1
      src/components/common/scientist/info.vue
  9. 2 2
      src/components/common/studio/info.vue
  10. 1 1
      src/components/common/support/info.vue
  11. 1 1
      src/components/common/unit/info.vue
  12. 1 1
      src/components/common/web/list/build.vue
  13. 1 1
      src/components/common/web/list/demand.vue
  14. 1 1
      src/components/common/web/list/download.vue
  15. 1 1
      src/components/common/web/list/notice.vue
  16. 1 1
      src/components/common/web/list/scientist.vue
  17. 1 1
      src/components/common/web/list/studio.vue
  18. 1 1
      src/components/common/web/list/support.vue
  19. 1 1
      src/components/common/web/list/unit.vue
  20. 0 59
      src/components/file-1.vue
  21. 0 69
      src/components/wang-editor.vue
  22. 3 3
      src/views/center/other/contact/index.vue
  23. 4 4
      src/views/center/other/download/add.vue
  24. 3 3
      src/views/center/other/download/index.vue
  25. 4 4
      src/views/center/other/message/add.vue
  26. 4 4
      src/views/center/other/message/index.vue
  27. 4 4
      src/views/center/other/notice/add.vue
  28. 3 3
      src/views/center/other/notice/index.vue
  29. 4 4
      src/views/center/studio/flair/index.vue
  30. 1 1
      src/views/center/studio/info/export.vue
  31. 4 4
      src/views/center/studio/info/index.vue
  32. 2 2
      src/views/center/studio/info/info.vue
  33. 4 4
      src/views/center/studio/year/index.vue
  34. 4 4
      src/views/center/supplydemand/demand/index.vue
  35. 1 1
      src/views/center/supplydemand/demand/info.vue
  36. 4 4
      src/views/center/supplydemand/support/index.vue
  37. 1 1
      src/views/center/supplydemand/support/info.vue
  38. 5 5
      src/views/center/users/company/index.vue
  39. 1 1
      src/views/center/users/company/info.vue
  40. 4 4
      src/views/center/users/scientist/index.vue
  41. 1 1
      src/views/center/users/scientist/info.vue
  42. 3 3
      src/views/unit/applyflair/add.vue
  43. 3 3
      src/views/unit/applyflair/index.vue
  44. 1 1
      src/views/unit/builddesire/add.vue
  45. 4 4
      src/views/unit/builddesire/index.vue
  46. 1 1
      src/views/unit/contactoffice/index.vue
  47. 4 4
      src/views/unit/demand/add.vue
  48. 3 3
      src/views/unit/demand/index.vue
  49. 1 1
      src/views/unit/demand/info.vue
  50. 3 3
      src/views/unit/scientist/add.vue
  51. 2 2
      src/views/unit/scientist/index.vue
  52. 1 1
      src/views/unit/studio/add.vue
  53. 3 3
      src/views/unit/studio/index.vue
  54. 1 1
      src/views/unit/studio/parts/form-2.vue
  55. 1 1
      src/views/unit/studio/parts/form-3.vue
  56. 3 3
      src/views/unit/yearreport/add.vue
  57. 3 3
      src/views/unit/yearreport/index.vue
  58. 2 2
      src/views/user/scientist/studio/index.vue
  59. 1 1
      src/views/user/scientist/studio/info.vue
  60. 4 4
      src/views/user/support/add.vue
  61. 3 3
      src/views/user/support/index.vue
  62. 1 1
      src/views/user/support/info.vue

+ 0 - 14
src/components/btn-1.vue

@@ -1,14 +0,0 @@
-<template>
-  <div id="btn">
-    <el-button type="success" @click="toAdd()">新增</el-button>
-    <el-button type="primary" disabled>修改</el-button>
-    <el-button type="danger" disabled>删除</el-button>
-    <el-button type="warning" disabled>导出</el-button>
-  </div>
-</template>
-<script setup lang="ts">
-const emit = defineEmits(['toAdd']);
-const toAdd = () => {
-  emit('toAdd');
-};
-</script>

+ 0 - 30
src/components/c-dialog.vue

@@ -1,30 +0,0 @@
-<template>
-  <div id="e-dialog">
-    <el-dialog :title="dialog.title" v-model="dialog.show" :width="width" :before-close="handleClose" :close-on-click-modal="false" :append-to-body="true">
-      <slot name="info"></slot>
-    </el-dialog>
-  </div>
-</template>
-
-<script lang="ts" setup>
-import { toRefs } from 'vue';
-const props = defineProps({
-  dialog: { type: Object, default: () => {} },
-  width: { type: String, default: '40%' },
-});
-const { dialog } = toRefs(props);
-const { width } = toRefs(props);
-const emit = defineEmits(['handleClose']);
-const handleClose = () => {
-  emit('handleClose');
-};
-</script>
-
-<style lang="scss" scoped>
-:deep(.el-dialog__body) {
-  padding: 10px;
-  min-height: 30px;
-  max-height: 400px;
-  overflow-y: auto;
-}
-</style>

+ 0 - 220
src/components/c-form.vue

@@ -1,220 +0,0 @@
-<template>
-  <div id="c-form">
-    <el-row type="flex" justify="space-around">
-      <el-col :span="span">
-        <el-form ref="formRef" :model="form" :rules="rules" :label-width="labelWidth" class="form" @submit.prevent>
-          <template v-for="(item, index) in fields">
-            <el-form-item v-if="display(item)" :key="'form-field-' + index" :label="getField('label', item)" :prop="item.model" :required="item.required">
-              <template v-if="!item.custom">
-                <template v-if="item.type === 'textarea'">
-                  <el-input
-                    clearable
-                    v-model="form[item.model]"
-                    :type="item.type"
-                    :placeholder="getField('placeholder', item)"
-                    v-bind="item.options"
-                    @change="dataChange(item.model)"
-                    show-word-limit
-                    :disabled="item.readonly"
-                  ></el-input>
-                </template>
-                <template v-else-if="item.type === 'numbers'">
-                  <el-input-number
-                    v-model="form[item.model]"
-                    :placeholder="getField('placeholder', item)"
-                    @change="dataChange(item.model)"
-                    style="width: 100%"
-                    :disabled="item.readonly"
-                  />
-                </template>
-                <template v-else-if="item.type === 'radio'">
-                  <el-radio-group v-model="form[item.model]" :type="item.type" v-bind="item.options" @change="dataChange(item.model)" :disabled="item.readonly">
-                    <slot :name="item.model" v-bind="{ item }"></slot>
-                  </el-radio-group>
-                </template>
-                <template v-else-if="item.type === 'checkbox'">
-                  <el-checkbox-group v-model="form[item.model]" :type="item.type" v-bind="item.options" :disabled="item.readonly">
-                    <slot :name="item.model" v-bind="{ item }"></slot>
-                  </el-checkbox-group>
-                </template>
-                <template v-else-if="item.type === 'select'">
-                  <el-select
-                    clearable
-                    filterable
-                    v-model="form[item.model]"
-                    :type="item.type"
-                    :placeholder="getField('selectplaceholder', item)"
-                    v-bind="item.options"
-                    @change="dataChange(item.model)"
-                    style="width: 100%"
-                    :disabled="item.readonly"
-                  >
-                    <slot :name="item.model" v-bind="{ item }"></slot>
-                  </el-select>
-                </template>
-                <template v-else-if="item.type === 'selectMany'">
-                  <el-select
-                    filterable
-                    clearable
-                    multiple
-                    collapse-tags
-                    v-model="form[item.model]"
-                    :type="item.type"
-                    :placeholder="getField('selectplaceholder', item)"
-                    v-bind="item.options"
-                    @change="dataChange(item.model)"
-                    style="width: 100%"
-                    :disabled="item.readonly"
-                  >
-                    <slot :name="item.model" v-bind="{ item }"></slot>
-                  </el-select>
-                </template>
-                <template
-                  v-else-if="
-                    item.type === `year` ||
-                    item.type == 'month' ||
-                    item.type == 'date' ||
-                    item.type == 'daterange' ||
-                    item.type == 'datetime' ||
-                    item.type == 'datetimerange'
-                  "
-                >
-                  <el-date-picker
-                    v-model="form[item.model]"
-                    :type="item.type"
-                    :placeholder="getField('selectplaceholder', item)"
-                    :format="getDateFormat(item.type)"
-                    :value-format="getDateFormat(item.type)"
-                    v-bind="item.options"
-                    @change="dataChange(item.model)"
-                    range-separator="至"
-                    style="width: 100%"
-                    :disabled="item.readonly"
-                  >
-                  </el-date-picker>
-                </template>
-                <template v-else-if="item.type === `time`">
-                  <el-time-picker
-                    v-model="form[item.model]"
-                    :placeholder="getField('selectplaceholder', item)"
-                    :format="getDateFormat(item.type)"
-                    :value-format="getDateFormat(item.type)"
-                    v-bind="item.options"
-                    @change="dataChange(item.model)"
-                    style="width: 100%"
-                    :disabled="item.readonly"
-                  >
-                  </el-time-picker>
-                </template>
-                <template v-else>
-                  <el-input
-                    clearable
-                    v-model="form[item.model]"
-                    :type="getField('type', item)"
-                    :placeholder="getField('placeholder', item)"
-                    :show-password="getField('type', item) === 'password'"
-                    v-bind="item.options"
-                    @change="dataChange(item.model)"
-                    :disabled="item.readonly"
-                  ></el-input>
-                </template>
-              </template>
-              <template v-else>
-                <slot :name="item.model" v-bind="{ item }"></slot>
-              </template>
-            </el-form-item>
-          </template>
-          <el-col :span="24" label="" class="btn" v-if="isSave">
-            <slot name="submit">
-              <el-button type="primary" @click="save(formRef)">{{ submitText }}</el-button>
-            </slot>
-          </el-col>
-        </el-form>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script setup lang="ts">
-import { ref, toRefs } from 'vue';
-import type { FormInstance } from 'element-plus';
-import _ from 'lodash';
-// #region 传递
-interface fieldsItem {
-  model: string;
-  type: string;
-  readonly: string;
-  options: object;
-  custom: string;
-  required: string;
-  limit: number | undefined;
-  url: string;
-}
-const props = defineProps({
-  fields: { type: Array<fieldsItem>, default: () => [{ readonly: false }] },
-  rules: { type: Object, default: () => {} },
-  labelWidth: { type: String, default: '120px' },
-  submitText: { type: String, default: '保存' },
-  form: { type: Object, default: () => {} },
-  reset: { type: Boolean, default: false },
-  isSave: { type: Boolean, default: true },
-  span: { type: Number, default: 24 }, // 限制两侧的距离,24就是整行全用
-});
-const { fields } = toRefs(props);
-const { rules } = toRefs(props);
-const { labelWidth } = toRefs(props);
-const { submitText } = toRefs(props);
-const { form } = toRefs(props);
-const { reset } = toRefs(props);
-const { isSave } = toRefs(props);
-const { span } = toRefs(props);
-const formRef = ref<FormInstance>();
-const getField = (item: string, data: any) => {
-  let res: string | null | boolean = _.get(data, item, null);
-  if (item === 'type') res = res === null ? `text` : res;
-  if (item === 'placeholder') res = res === null ? `请输入${data.label}` : res;
-  if (item === `selectplaceholder`) res = res === null ? `请选择${data.label}` : res;
-  if (item === 'required') res = res === null ? false : res;
-  if (item === `error`) res = res === null ? `${data.label}错误` : res;
-  return res;
-};
-
-const getDateFormat = (e: string) => {
-  if (e === 'year') return 'YYYY';
-  if (e === 'month') return 'MM';
-  if (e === 'date') return 'YYYY-MM-DD';
-  if (e === 'daterange') return 'YYYY-MM-DD';
-  if (e === 'datetime') return 'YYYY-MM-DD HH:mm:ss';
-  if (e === 'datetimerange') return 'YYYY-MM-DD HH:mm:ss';
-  if (e === 'time') return 'HH:mm:ss';
-};
-const emit = defineEmits(['save', 'dataChange']);
-const clear = ref<any>();
-// 提交
-const save = async (formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  await formEl.validate((valid, fields) => {
-    if (valid) {
-      emit('save', form.value);
-      if (reset.value) clear.value.resetFields();
-    } else {
-      console.log('error submit!', fields);
-    }
-  });
-};
-const display = (field: any) => {
-  let dis = _.get(field, `display`);
-  if (!_.isFunction(dis)) return true;
-  else return dis(field, form);
-};
-const dataChange = (model: string) => {
-  const value = form.value[model];
-  emit('dataChange', { model, value });
-};
-</script>
-
-<style scoped>
-.btn {
-  text-align: center;
-}
-</style>

+ 0 - 172
src/components/c-search.vue

@@ -1,172 +0,0 @@
-<template>
-  <div id="c-search">
-    <el-row>
-      <el-col :span="24" class="title" v-if="is_title">
-        <el-col :span="24" class="title_1">
-          <span>{{ title || $route.meta.title }}</span>
-          <span>{{ tip }}</span>
-        </el-col>
-        <el-col :span="24" class="title_2">
-          <span>{{ remark }}</span>
-        </el-col>
-      </el-col>
-      <el-col :span="24" class="search" v-if="is_search">
-        <el-form ref="formRef" :model="form" label-width="auto">
-          <el-col :span="24" class="form">
-            <template v-for="(item, index) in fields">
-              <el-col :span="8" class="form_1" :key="'form-field-' + index" v-if="item.isSearch == true">
-                <el-form-item :label="getField('label', item)" :prop="item.model">
-                  <template v-if="!item.custom">
-                    <template v-if="item.type === 'select'">
-                      <el-select v-model="form[item.model]" v-bind="item.options" filterable clearable @change="dataChange(item.model)">
-                        <slot :name="item.model" v-bind="{ item }"></slot>
-                      </el-select>
-                    </template>
-                    <template v-else>
-                      <el-input
-                        v-model="form[item.model]"
-                        :type="getField('type', item)"
-                        :placeholder="getField('place', item)"
-                        clearable
-                        v-bind="item.options"
-                        @change="dataChange(item.model)"
-                      ></el-input>
-                    </template>
-                  </template>
-                  <template v-else>
-                    <slot :name="item.model" v-bind="{ item }"></slot>
-                    <!-- <el-input v-model="form[item.model]" clearable :placeholder="`输入${item.label}`"></el-input> -->
-                  </template>
-                </el-form-item>
-              </el-col>
-            </template>
-          </el-col>
-          <el-col :span="24" class="btn">
-            <el-button type="primary" @click="toSubmit()">查询</el-button>
-            <el-button type="danger" @click="toReset()">重置</el-button>
-          </el-col>
-        </el-form>
-      </el-col>
-      <el-col :span="24" class="back" v-if="is_back">
-        <el-button type="primary" @click="toBack()">返回</el-button>
-        <slot name="custombtn"></slot>
-      </el-col>
-      <el-col :span="24" class="slot">
-        <slot name="isslot"></slot>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-<script lang="ts" setup>
-import { ref, toRefs } from 'vue';
-import type { Ref } from 'vue';
-import _ from 'lodash';
-interface fieldsItem {
-  model: string;
-  type: string;
-  // readonly: string;
-  options: object;
-  custom: string;
-  // required: string;
-  // limit: number | undefined;
-  isSearch: boolean;
-}
-const props = defineProps({
-  is_title: { type: Boolean, default: true },
-  is_search: { type: Boolean, default: false },
-  is_back: { type: Boolean, default: false },
-  fields: { type: Array<fieldsItem> },
-  title: { type: String },
-  tip: { type: String },
-  remark: { type: String },
-});
-const { is_title } = toRefs(props);
-const { is_search } = toRefs(props);
-const { is_back } = toRefs(props);
-const { fields } = toRefs(props);
-const { title } = toRefs(props);
-const { tip } = toRefs(props);
-const { remark } = toRefs(props);
-
-let form: Ref<{}> = ref({});
-const emit = defineEmits(['search', 'toReset', 'toBack', 'dataChange']);
-const toSubmit = () => {
-  const obj = _.pickBy(form.value);
-  emit('search', { ...obj });
-};
-// 重置
-const toReset = () => {
-  form.value = {};
-  emit('search', form.value);
-};
-// 文字描述
-const getField = (item, data) => {
-  let res = _.get(data, item, null);
-  if (item === 'type') res = res === null ? `text` : res;
-  if (item === 'place') res = res === null ? `请输入${data.label}` : res;
-  if (item === 'required') res = res === null ? false : res;
-  if (item === `error`) res = res === null ? `${data.label}错误` : res;
-  return res;
-};
-// 获取输入值
-const dataChange = (model: string) => {
-  const value = form.value[model];
-  emit('dataChange', { model, value });
-};
-// 返回
-const toBack = () => {
-  emit('toBack');
-};
-</script>
-
-<style lang="scss" scoped>
-.title {
-  margin: 0 0 5px 0;
-  .title_1 {
-    margin: 0 0 5px 0;
-    span:first-child {
-      font-size: 20px;
-      font-weight: 700;
-      margin-right: 10px;
-    }
-    span:last-child {
-      font-size: 14px;
-      color: #979797;
-    }
-  }
-  .title_2 {
-    span {
-      color: #8baae7;
-      font-size: 14px;
-      margin-top: 10px;
-    }
-  }
-}
-.search {
-  margin: 0 0 10px 0;
-  .form {
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-    .form_1 {
-      padding: 0 0 0 10px;
-      .el-form-item {
-        float: left;
-        width: 100%;
-        margin: 0 0 10px 0;
-      }
-      .el-select {
-        width: 100%;
-      }
-    }
-  }
-
-  .btn {
-    text-align: right;
-  }
-}
-.back {
-  text-align: left;
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 333
src/components/c-table.vue

@@ -1,333 +0,0 @@
-<template>
-  <div id="c-table">
-    <el-table
-      ref="table"
-      :row-key="rowKey"
-      :data="data"
-      size="small"
-      border
-      stripe
-      :max-height="height !== null ? height : ''"
-      @select="handleSelectionChange"
-      @select-all="handleSelectAll"
-      :show-summary="useSum"
-      @row-click="rowClick"
-      :summary-method="computedSum"
-    >
-      <el-table-column type="selection" width="55" v-if="select" :prop="rowKey" :reserve-selection="true"> </el-table-column>
-      <template v-for="(item, index) in fields">
-        <template v-if="item.custom">
-          <el-table-column :key="index" align="center" :label="item.label" v-bind="item.options" :show-overflow-tooltip="item.showTip || true">
-            <template v-slot="{ row }">
-              <slot :name="item.model" v-bind="{ item, row }"></slot>
-            </template>
-          </el-table-column>
-        </template>
-        <template v-else>
-          <el-table-column
-            :key="index"
-            align="center"
-            :label="item.label"
-            :prop="item.model"
-            :formatter="toFormatter"
-            :sortable="true"
-            v-bind="item.options"
-            :show-overflow-tooltip="item.showTip === false ? item.showTip : true"
-          >
-          </el-table-column>
-        </template>
-      </template>
-      <template v-if="opera.length > 0">
-        <el-table-column label="操作" align="center" :width="operaWidth">
-          <template v-slot="{ row, $index }">
-            <template v-for="(item, index) in opera">
-              <template v-if="display(item, row)">
-                <template v-if="vOpera">
-                  <el-link
-                    v-opera="item.method"
-                    :key="`${item.model}-column-${index}`"
-                    :type="item.type || 'primary'"
-                    :icon="item.icon || ''"
-                    size="small"
-                    style="padding-right: 10px"
-                    :underline="false"
-                    @click="handleOpera(row, item.method, item.confirm, item.methodZh, item.label, $index, item.confirmWord)"
-                  >
-                    {{ item.label }}
-                  </el-link>
-                </template>
-                <template v-else>
-                  <el-link
-                    :key="`${item.model}-column-${index}`"
-                    :type="item.type || 'primary'"
-                    :icon="item.icon || ''"
-                    size="small"
-                    style="padding-right: 10px"
-                    :underline="false"
-                    @click="handleOpera(row, item.method, item.confirm, item.methodZh, item.label, $index, item.confirmWord)"
-                  >
-                    {{ item.label }}
-                  </el-link>
-                </template>
-              </template>
-            </template>
-          </template>
-        </el-table-column>
-      </template>
-    </el-table>
-    <el-row type="flex" align="middle" justify="end" v-if="usePage">
-      <el-col :span="24" class="page">
-        <el-pagination
-          background
-          layout="sizes,total, prev, pager, next"
-          :page-sizes="[10, 20, 50, 100, 200]"
-          :total="total"
-          :page-size="limit"
-          v-model:current-page="currentPage"
-          @current-change="changePage"
-          @size-change="sizeChange"
-        >
-        </el-pagination>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-<script setup lang="ts">
-import type { Ref } from 'vue';
-import { ref, toRefs, nextTick, getCurrentInstance } from 'vue';
-import { ElMessageBox } from 'element-plus';
-
-import _ from 'lodash';
-const { proxy } = getCurrentInstance() as any;
-
-// #region 传递
-
-interface fieldsItem {
-  custom: string;
-  label: string;
-  options: string;
-  showTip: boolean;
-  model: string;
-}
-interface operaItem {
-  method: string;
-  model: string;
-  type: string;
-  icon: string;
-  confirmWord: string;
-  label: string;
-  confirm: boolean;
-  methodZh: string;
-}
-interface dataItem {
-  _id?: string;
-}
-
-const props = defineProps({
-  fields: { type: Array<fieldsItem>, required: true },
-  data: { type: Array<dataItem>, required: true },
-  opera: { type: Array<operaItem>, default: () => [] },
-  rowKey: { type: String, default: '_id' },
-  select: { type: Boolean, default: false },
-  selected: { type: Array, default: () => [] },
-  usePage: { type: Boolean, default: true },
-  total: { type: Number, default: 0 },
-  useSum: { type: Boolean, default: false },
-  sumcol: { type: Array, default: () => [] },
-  sumres: { type: String, default: 'total' },
-  // limit: { type: Number, default: 10 },
-  height: null,
-  operaWidth: { type: Number, default: 200 },
-  vOpera: { type: Boolean, default: false },
-});
-const { fields } = toRefs(props);
-const { data } = toRefs(props);
-const { opera } = toRefs(props);
-const { rowKey } = toRefs(props);
-const { select } = toRefs(props);
-const { selected } = toRefs(props);
-const { usePage } = toRefs(props);
-const { total } = toRefs(props);
-const { useSum } = toRefs(props);
-const { sumcol } = toRefs(props);
-const { sumres } = toRefs(props);
-// const { limit } = toRefs(props);
-const { height } = toRefs(props);
-const { operaWidth } = toRefs(props);
-const { vOpera } = toRefs(props);
-// #endregion
-const emit = defineEmits(['method', 'handleSelect', 'query', 'rowClick']);
-
-let pageSelected: Ref<any[]> = ref([]);
-let currentPage: Ref<number> = ref(1);
-
-let limit: number = proxy.$limit;
-const toFormatter = (row: any, column: { property: string }, cellValue: string, index: string) => {
-  let this_fields = fields.value.filter((fil) => fil.model === column.property);
-  if (this_fields.length > 0) {
-    let format: any = _.get(this_fields[0], `format`, false);
-    if (format) {
-      let res;
-      if (_.isFunction(format)) {
-        res = format(cellValue);
-      } else {
-        res = toFormat({
-          model: this_fields[0].model,
-          value: cellValue,
-        });
-      }
-      return res;
-    } else {
-      return cellValue;
-    }
-  }
-};
-const toFormat = (e: { model: string; value: string }) => {};
-const handleOpera = (data: string, method: any, confirm = false, methodZh: string, label: string, index: string, confirmWord: string) => {
-  let self = true;
-  if (_.isFunction(methodZh)) methodZh = methodZh(data);
-  else if (!_.isString(methodZh)) {
-    methodZh = label;
-    self = false;
-  }
-  if (confirm) {
-    let word = self ? methodZh : `您确认${methodZh}该数据?`;
-    if (confirmWord) word = confirmWord;
-    ElMessageBox.confirm(word, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' })
-      .then(() => {
-        emit(method, data, index);
-      })
-      .catch(() => {});
-  } else emit(method, data, index);
-};
-const handleSelectionChange = (selection: string, row: never) => {
-  //根据row是否再pageSelected中,判断是添加还是删除
-  let isSelecteds = _.cloneDeep(pageSelected);
-  const is_has = isSelecteds.value.findIndex((f) => f[rowKey.value] === row[rowKey.value]);
-  if (is_has <= -1) {
-    // 没有找到,属于添加
-    isSelecteds.value.push(row);
-  } else {
-    // 找到了,删除
-    isSelecteds.value.splice(is_has, 1);
-  }
-  pageSelected.value = isSelecteds.value;
-  emit(`handleSelect`, isSelecteds);
-};
-const handleSelectAll = (selection: any) => {
-  //处于没全选状态,选择之后一定是全选,只有处于全选状态时,才会反选(全取消)
-  let res: any = [];
-  if (selection.length > 0) {
-    //全选
-    res = _.uniqBy(pageSelected.value.concat(selection), rowKey.value);
-  } else {
-    //全取消
-    res = _.differenceBy(pageSelected.value, data.value, rowKey.value);
-  }
-  pageSelected.value = res;
-  emit(`handleSelect`, res);
-};
-const table = ref<any>();
-const initSelection = () => {
-  nextTick(() => {
-    table.value.clearSelection();
-    selected.value.forEach((info: any) => {
-      let d = data.value.filter((p) => p._id === info._id);
-      if (d.length > 0) table.value.toggleRowSelection(d[0]);
-    });
-  });
-};
-const selectReset = () => {
-  table.value.clearSelection();
-};
-const changePage = (page: number = currentPage.value) => {
-  emit('query', { skip: (page - 1) * limit, limit: limit });
-};
-const sizeChange = (limits: number) => {
-  limit = limits;
-  currentPage.value = 1;
-  emit('query', { skip: 0, limit: limit });
-};
-const rowClick = (row: any, column: string, event: string) => {
-  emit(`rowClick`, row);
-};
-const display = (item: operaItem, row: any) => {
-  let display: any = _.get(item, `display`, true);
-  if (display === true) return true;
-  else {
-    let res = display(row);
-    return res;
-  }
-};
-// 计算合计
-const computedSum = (columns: any, data: any) => {
-  if (columns.length <= 0 || data.length <= 0) return '';
-  const result = [];
-  const reg = new RegExp(/^\d+$/);
-  for (const column of columns) {
-    // 判断有没有prop属性
-    const prop = _.get(column, 'property');
-    if (!prop) {
-      result.push('');
-      continue;
-    }
-    // 判断是否需要计算
-    const inlist = sumcol.value.find((f) => f == prop);
-    if (!inlist) {
-      result.push('');
-      continue;
-    }
-    let res: number | unknown = 0;
-    // 整理出要计算的属性(只取出数字或者可以为数字的值)
-    const resetList = data.map((i: any) => {
-      const d = _.get(i, prop);
-      return d * 1;
-    });
-    let p1: any;
-    if (sumres.value === 'total') {
-      res = totalComputed(p1, resetList);
-    } else if (sumres.value === 'avg') {
-      res = avgComputed(resetList);
-    } else if (sumres.value === 'max') {
-      res = maxComputed(resetList);
-    } else if (sumres.value === 'min') {
-      res = minComputed(resetList);
-    }
-    result.push(res);
-  }
-  result[0] = '合计';
-  return result;
-};
-// 合计计算
-const totalComputed = (columns: any, data: any) => {
-  const total = data.reduce((p: number, n: string) => p + parseFloat(n), 0);
-  return total;
-};
-// 平均值计算
-const avgComputed = (data: any) => {
-  let p1: any;
-  const total = totalComputed(p1, data);
-  return _.round(_.divide(total, data.length), 2);
-};
-// 最大值计算
-const maxComputed = (data: any) => {
-  return _.max(data);
-};
-// 最小值计算
-const minComputed = (data: any) => {
-  return _.min(data);
-};
-</script>
-
-<style scoped>
-.page {
-  background-color: #fff;
-  padding: 8px;
-  height: 50px;
-}
-.el-pagination {
-  position: absolute;
-  right: 10px;
-  background-color: #fff;
-}
-</style>

+ 0 - 103
src/components/c-upload.vue

@@ -1,103 +0,0 @@
-<template>
-  <div id="c-upload">
-    <el-upload
-      v-if="url"
-      ref="upload"
-      :action="url"
-      :limit="limit"
-      :accept="accept"
-      :file-list="list"
-      :list-type="listType"
-      :on-exceed="outLimit"
-      :on-preview="filePreview"
-      :on-success="onSuccess"
-      :before-remove="onRemove"
-    >
-      <el-button type="primary">选择文件</el-button>
-      <template #tip v-if="tip">
-        <p style="color: #ff0000">{{ tip }}</p>
-      </template>
-    </el-upload>
-    <el-dialog v-model="dialog.show" append-to-body>
-      <img width="100%" :src="dialog.url" alt="" />
-    </el-dialog>
-  </div>
-</template>
-
-<script setup lang="ts">
-import type { Ref } from 'vue';
-import { ref, toRefs } from 'vue';
-import { ElMessage } from 'element-plus';
-import _ from 'lodash';
-
-// #region
-interface ListItem {
-  errcode?: string | number;
-  errmsg?: string;
-  uri?: string;
-  name?: string;
-  url?: string;
-  id?: any;
-}
-let dialog: Ref<{ show: boolean; url: string }> = ref({ show: false, url: '' });
-const props = defineProps({
-  url: { type: String, default: () => '' },
-  limit: { type: Number, default: () => 6 },
-  accept: { type: String, default: () => 'image/png, image/jpeg' },
-  listType: { type: String, default: () => 'text' }, //'text' | 'picture' | 'picture-card'
-  tip: { type: String, default: () => undefined },
-  list: { type: Array<ListItem>, default: () => [] },
-  model: { type: String, default: () => '' },
-});
-// 图片上传地址
-const { url } = toRefs(props);
-// 可上传文件数目
-const { limit } = toRefs(props);
-// 接收上传的文件类型
-const { accept } = toRefs(props);
-// 文件列表的类型--picture-card---picture
-const { listType } = toRefs(props);
-// 文件提醒
-const { tip } = toRefs(props);
-// 已有数据,赋值,预览
-const { list } = toRefs(props);
-const { model } = toRefs(props);
-// const list = ref<UploadUserFile[]>([]);
-
-const emit = defineEmits(['change']);
-// 图片预览
-const filePreview = (file: { url: string }) => {
-  // this.dialog = { show: true, url: file.url };
-  window.open(file.url);
-};
-// 只允许上传多少个文件
-const outLimit = () => {
-  ElMessage.error(`只允许上传${limit.value}个文件`);
-};
-// 上传成功,response:成功信息,file:图片信息,fileList:图片列表
-const onSuccess = (response: { errcode: string | number; errmsg: string; uri: string }, file: { name: string }, fileList: any) => {
-  if (response.errcode !== 0) {
-    ElMessage({ type: 'error', message: '删除成功' });
-    return;
-  }
-  let ponse = _.omit(response, ['errcode', 'errmsg']);
-  let arr: Ref<ListItem[]> = _.cloneDeep(list);
-  if (_.isArray(list.value)) {
-    arr.value.push({ ...ponse, name: file.name, url: `${import.meta.env.VITE_APP_HOST}${response.uri}` });
-  } else {
-    arr.value = [{ ...ponse, name: file.name, url: `${import.meta.env.VITE_APP_HOST}${response.uri}` }];
-  }
-  emit('change', { model: model.value, value: arr.value });
-};
-// 删除图片
-const onRemove = (file: { id: any; uri: string }, fileList: any) => {
-  // let arr: Ref<ListItem[]> = _.cloneDeep(list);
-  // let info = arr.value.filter((f) => f.id != file.id);
-  // emit('change', info);
-  return true;
-};
-
-// #endregion
-</script>
-
-<style lang="scss" scoped></style>

+ 1 - 1
src/components/common/demand/info.vue

@@ -22,7 +22,7 @@
   </div>
 </template>
 <script lang="ts" setup>
-import CForm from '@/components/c-form.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
 import { ref, toRefs, watch } from 'vue';
 import type { Ref } from 'vue';
 import _ from 'lodash';

+ 1 - 1
src/components/common/scientist/info.vue

@@ -59,7 +59,7 @@
   </div>
 </template>
 <script lang="ts" setup>
-import CForm from '@/components/c-form.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
 import { ref, toRefs, watch } from 'vue';
 import store from '@/stores/counter';
 import type { Ref } from 'vue';

+ 2 - 2
src/components/common/studio/info.vue

@@ -42,8 +42,8 @@
   </div>
 </template>
 <script lang="ts" setup>
-import CForm from '@/components/c-form.vue';
-import CTable from '@/components/c-table.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
 import { ref, toRefs, watch } from 'vue';
 import store from '@/stores/counter';
 import type { Ref } from 'vue';

+ 1 - 1
src/components/common/support/info.vue

@@ -22,7 +22,7 @@
   </div>
 </template>
 <script lang="ts" setup>
-import CForm from '@/components/c-form.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
 import { ref, toRefs, watch } from 'vue';
 
 import type { Ref } from 'vue';

+ 1 - 1
src/components/common/unit/info.vue

@@ -40,7 +40,7 @@
   </div>
 </template>
 <script lang="ts" setup>
-import CForm from '@/components/c-form.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
 import { ref, toRefs, watch } from 'vue';
 import store from '@/stores/counter';
 import type { Ref } from 'vue';

+ 1 - 1
src/components/common/web/list/build.vue

@@ -41,7 +41,7 @@
 </template>
 <script lang="ts" setup>
 import CPage from '@/components/common/web/c-page.vue';
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { DictDataStore } from '@common/src/stores/users/sysdictdata'; // 字典表

+ 1 - 1
src/components/common/web/list/demand.vue

@@ -33,7 +33,7 @@
 </template>
 <script lang="ts" setup>
 import CPage from '@/components/common/web/c-page.vue';
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { DictDataStore } from '@common/src/stores/users/sysdictdata'; // 字典表

+ 1 - 1
src/components/common/web/list/download.vue

@@ -20,7 +20,7 @@
 </template>
 <script lang="ts" setup>
 import CPage from '@/components/common/web/c-page.vue';
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { RelevantdownloadStore } from '@common/src/stores/studio/other/relevantdownload';

+ 1 - 1
src/components/common/web/list/notice.vue

@@ -29,7 +29,7 @@
 </template>
 <script lang="ts" setup>
 import CPage from '@/components/common/web/c-page.vue';
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { NoticeStore } from '@common/src/stores/studio/other/notice'; //

+ 1 - 1
src/components/common/web/list/scientist.vue

@@ -41,7 +41,7 @@
 </template>
 <script lang="ts" setup>
 import CPage from '@/components/common/web/c-page.vue';
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { DictDataStore } from '@common/src/stores/users/sysdictdata'; // 字典表

+ 1 - 1
src/components/common/web/list/studio.vue

@@ -29,7 +29,7 @@
 </template>
 <script lang="ts" setup>
 import CPage from '@/components/common/web/c-page.vue';
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { StudioStore } from '@common/src/stores/studio/studios/studio'; //

+ 1 - 1
src/components/common/web/list/support.vue

@@ -33,7 +33,7 @@
 </template>
 <script lang="ts" setup>
 import CPage from '@/components/common/web/c-page.vue';
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { DictDataStore } from '@common/src/stores/users/sysdictdata'; // 字典表

+ 1 - 1
src/components/common/web/list/unit.vue

@@ -41,7 +41,7 @@
 </template>
 <script lang="ts" setup>
 import CPage from '@/components/common/web/c-page.vue';
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { DictDataStore } from '@common/src/stores/users/sysdictdata'; // 字典表

+ 0 - 59
src/components/file-1.vue

@@ -1,59 +0,0 @@
-<template>
-  <div id="file-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-form :model="form" ref="formRef" label-width="auto">
-          <el-form-item label="佐证资料" prop="file">
-            <component :is="CUpload" :limit="limit" :model="model" :url="url" :list="form.file" @change="onChange" style="width: 100%"></component>
-          </el-form-item>
-          <el-col :span="24" class="btn" v-if="!noEdit">
-            <el-button type="primary" @click="onSubmit()">确定</el-button>
-            <el-button type="danger" @click="toReset()">取消</el-button>
-          </el-col>
-        </el-form>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script setup lang="ts">
-import CUpload from '@/components/c-upload.vue';
-import type { Ref } from 'vue';
-import { ref, toRefs } from 'vue';
-import type { FormInstance } from 'element-plus';
-interface dataItem {}
-let limit: Ref<number> = ref(6);
-// let url: Ref<string> = ref('/files/freeLabel/outcome/upload');
-const formRef = ref<FormInstance>();
-// #region 参数传递
-const props = defineProps({
-  form: { type: Object, default: () => {} },
-  model: { type: String, default: () => '' },
-  noEdit: { type: Boolean, default: () => false },
-  url: { type: String, default: () => '/files/freeLabel/upload' },
-});
-const { form } = toRefs(props);
-const { noEdit } = toRefs(props);
-const { url } = toRefs(props);
-const { model } = toRefs(props);
-// #endregion
-
-const emit = defineEmits(['onSubmit', 'resetForm']);
-const onChange = (e: { model: string; value: Array<dataItem> }) => {
-  const { model, value } = e;
-  form.value[model] = value;
-};
-const onSubmit = () => {
-  emit('onSubmit', form.value);
-};
-// 重置
-const toReset = () => {
-  form.value = { file: [] };
-  emit('resetForm');
-};
-</script>
-<style scoped>
-.btn {
-  text-align: center;
-}
-</style>

+ 0 - 69
src/components/wang-editor.vue

@@ -1,69 +0,0 @@
-<template>
-  <div id="editor">
-    <div style="border: 1px solid #ccc">
-      <Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig" :mode="mode" />
-      <Editor style="height: 500px; overflow-y: hidden" v-model="valueHtml" :defaultConfig="editorConfig" :mode="mode" @onCreated="onCreated" />
-    </div>
-  </div>
-</template>
-
-<script lang="ts" setup>
-import '@wangeditor/editor/dist/css/style.css'; // 引入 css
-import { Editor, Toolbar } from '@wangeditor/editor-for-vue';
-import type { Ref } from 'vue';
-import { ref, toRefs, onBeforeUnmount, shallowRef, computed } from 'vue';
-interface EmitEvent {
-  (e: 'update:modelValue', params: string): void;
-}
-// #region 参数传递
-const props = defineProps({
-  modelValue: { type: String, default: () => '' },
-  mode: { type: String, default: () => 'default' },
-  url: { type: String, default: () => '' },
-});
-const { modelValue } = toRefs(props);
-const { mode } = toRefs(props);
-const { url } = toRefs(props);
-// #endregion
-
-const editorRef = shallowRef();
-const onCreated = (editor: string) => {
-  editorRef.value = Object.seal(editor); // 一定要用 Object.seal() ,否则会报错
-};
-
-const emit = defineEmits<EmitEvent>();
-const valueHtml = computed({
-  get() {
-    return modelValue.value;
-  },
-  set(value: string) {
-    emit('update:modelValue', value);
-  },
-});
-const customPicInsert = (result: { errcode: number; uri: string; name: string }, insertFn: any) => {
-  const { errcode, uri, name } = result;
-  const url = `${import.meta.env.VITE_APP_HOST}${uri}`;
-  if (errcode === 0) {
-    insertFn(url, name);
-  }
-};
-let editorConfig: Ref<object> = ref({
-  placeholder: '请输入内容...',
-  MENU_CONF: { uploadImage: { server: url, customInsert: customPicInsert } },
-});
-let toolbarConfig: Ref<object> = ref({
-  // excludeKeys: ['insertImage', 'insertVideo', 'uploadVideo', 'video'],
-});
-onBeforeUnmount(() => {
-  const editor = editorRef.value;
-  if (editor == null) return;
-  editor.destroy();
-});
-</script>
-
-<style src="@wangeditor/editor/dist/css/style.css"></style>
-<style scoped>
-.editor {
-  overflow-y: hidden;
-}
-</style>

+ 3 - 3
src/views/center/other/contact/index.vue

@@ -20,9 +20,9 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import WangEditor from '@/components/wang-editor.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import WangEditor from '@common/src/components/frame/wang-editor.vue';
 import store from '@/stores/counter';
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 4 - 4
src/views/center/other/download/add.vue

@@ -23,10 +23,10 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import WangEditor from '@/components/wang-editor.vue';
-import CUpload from '@/components/c-upload.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import WangEditor from '@common/src/components/frame/wang-editor.vue';
+import CUpload from '@common/src/components/frame/c-upload.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 3 - 3
src/views/center/other/download/index.vue

@@ -34,9 +34,9 @@
 </template>
 <script setup lang="ts">
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import btn from '@/components/btn-1.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import btn from '@common/src/components/frame/btn-1.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 4 - 4
src/views/center/other/message/add.vue

@@ -32,10 +32,10 @@
 </template>
 <script setup lang="ts">
 import store from '@/stores/counter';
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import WangEditor from '@/components/wang-editor.vue';
-import CUpload from '@/components/c-upload.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import WangEditor from '@common/src/components/frame/wang-editor.vue';
+import CUpload from '@common/src/components/frame/c-upload.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';
 import type { FormRules } from 'element-plus';

+ 4 - 4
src/views/center/other/message/index.vue

@@ -50,10 +50,10 @@
 </template>
 <script setup lang="ts">
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import btn from '@/components/btn-1.vue';
-import CDialog from '@/components/c-dialog.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import btn from '@common/src/components/frame/btn-1.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
 import { Search } from '@element-plus/icons-vue';
 // #endregion
 import type { Ref } from 'vue';

+ 4 - 4
src/views/center/other/notice/add.vue

@@ -23,10 +23,10 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import WangEditor from '@/components/wang-editor.vue';
-import CUpload from '@/components/c-upload.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import WangEditor from '@common/src/components/frame/wang-editor.vue';
+import CUpload from '@common/src/components/frame/c-upload.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 3 - 3
src/views/center/other/notice/index.vue

@@ -34,9 +34,9 @@
 </template>
 <script setup lang="ts">
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import btn from '@/components/btn-1.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import btn from '@common/src/components/frame/btn-1.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 4 - 4
src/views/center/studio/flair/index.vue

@@ -47,10 +47,10 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import CForm from '@/components/c-form.vue';
-import CDialog from '@/components/c-dialog.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance, reactive } from 'vue';

+ 1 - 1
src/views/center/studio/info/export.vue

@@ -72,7 +72,7 @@
   </div>
 </template>
 <script lang="ts" setup>
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { useRoute } from 'vue-router';

+ 4 - 4
src/views/center/studio/info/index.vue

@@ -37,10 +37,10 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import CForm from '@/components/c-form.vue';
-import CDialog from '@/components/c-dialog.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance, reactive } from 'vue';

+ 2 - 2
src/views/center/studio/info/info.vue

@@ -13,13 +13,13 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import studioInfo from '@/components/common/studio/info.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { StudioStore } from '@common/src/stores/studio/studios/studio'; // 列表
-import { ScientistsettleStore } from '@common/src/stores/studio/studios/scientistsettle'; 
+import { ScientistsettleStore } from '@common/src/stores/studio/studios/scientistsettle';
 import type { IQueryResult } from '@/util/types.util';
 const scientistsettle = ScientistsettleStore();
 const studio = StudioStore();

+ 4 - 4
src/views/center/studio/year/index.vue

@@ -48,10 +48,10 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import CForm from '@/components/c-form.vue';
-import CDialog from '@/components/c-dialog.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance, reactive } from 'vue';

+ 4 - 4
src/views/center/supplydemand/demand/index.vue

@@ -42,10 +42,10 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import CForm from '@/components/c-form.vue';
-import CDialog from '@/components/c-dialog.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance, reactive } from 'vue';

+ 1 - 1
src/views/center/supplydemand/demand/info.vue

@@ -13,7 +13,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import demandInfo from '@/components/common/demand/info.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';

+ 4 - 4
src/views/center/supplydemand/support/index.vue

@@ -42,10 +42,10 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import CForm from '@/components/c-form.vue';
-import CDialog from '@/components/c-dialog.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance, reactive } from 'vue';

+ 1 - 1
src/views/center/supplydemand/support/info.vue

@@ -13,7 +13,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import supportInfo from '@/components/common/support/info.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';

+ 5 - 5
src/views/center/users/company/index.vue

@@ -11,7 +11,7 @@
           </template>
         </component>
       </el-col>
-      <el-col :span="24" class="two"> 
+      <el-col :span="24" class="two">
         <component
           :is="CTable"
           :fields="fields"
@@ -47,10 +47,10 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import CForm from '@/components/c-form.vue';
-import CDialog from '@/components/c-dialog.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance, reactive } from 'vue';

+ 1 - 1
src/views/center/users/company/info.vue

@@ -14,7 +14,7 @@
 </template>
 
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import unitInfo from '@/components/common/unit/info.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';

+ 4 - 4
src/views/center/users/scientist/index.vue

@@ -41,10 +41,10 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import CForm from '@/components/c-form.vue';
-import CDialog from '@/components/c-dialog.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance, reactive } from 'vue';

+ 1 - 1
src/views/center/users/scientist/info.vue

@@ -22,7 +22,7 @@
 </template>
 
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import scientistInfo from '@/components/common/scientist/info.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';

+ 3 - 3
src/views/unit/applyflair/add.vue

@@ -23,9 +23,9 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import CFile from '@/components/c-upload.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CFile from '@common/src/components/frame/c-upload.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 3 - 3
src/views/unit/applyflair/index.vue

@@ -35,9 +35,9 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import Btn1 from '@/components/btn-1.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import Btn1 from '@common/src/components/frame/btn-1.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 1 - 1
src/views/unit/builddesire/add.vue

@@ -113,7 +113,7 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 4 - 4
src/views/unit/builddesire/index.vue

@@ -53,10 +53,10 @@
 import store from '@/stores/counter';
 import { ElMessage } from 'element-plus';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import CDialog from '@/components/c-dialog.vue';
-import Btn1 from '@/components/btn-1.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import CDialog from '@common/src/components/frame/c-dialog.vue';
+import Btn1 from '@common/src/components/frame/btn-1.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 1 - 1
src/views/unit/contactoffice/index.vue

@@ -13,7 +13,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import type { Ref } from 'vue';
 import { ref, onMounted } from 'vue';
 import { ElMessage } from 'element-plus';

+ 4 - 4
src/views/unit/demand/add.vue

@@ -29,10 +29,10 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import CFile from '@/components/c-upload.vue';
-import WangEditor from '@/components/wang-editor.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CFile from '@common/src/components/frame/c-upload.vue';
+import WangEditor from '@common/src/components/frame/wang-editor.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 3 - 3
src/views/unit/demand/index.vue

@@ -41,9 +41,9 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import Btn1 from '@/components/btn-1.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import Btn1 from '@common/src/components/frame/btn-1.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 1 - 1
src/views/unit/demand/info.vue

@@ -13,7 +13,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import demandInfo from '@/components/common/demand/info.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';

+ 3 - 3
src/views/unit/scientist/add.vue

@@ -71,9 +71,9 @@
 import store from '@/stores/counter';
 import moment from 'moment';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import CFile from '@/components/c-upload.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CFile from '@common/src/components/frame/c-upload.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 2 - 2
src/views/unit/scientist/index.vue

@@ -30,8 +30,8 @@
 import store from '@/stores/counter';
 import { ElMessage } from 'element-plus';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 1 - 1
src/views/unit/studio/add.vue

@@ -38,7 +38,7 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import studioInfo from '@/components/common/studio/info.vue';
 import form1 from './parts/form-1.vue';
 import form2 from './parts/form-2.vue';

+ 3 - 3
src/views/unit/studio/index.vue

@@ -33,9 +33,9 @@
 import store from '@/stores/counter';
 import { ElMessage } from 'element-plus';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import Btn1 from '@/components/btn-1.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import Btn1 from '@common/src/components/frame/btn-1.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 1 - 1
src/views/unit/studio/parts/form-2.vue

@@ -101,7 +101,7 @@
 
 <script setup lang="ts">
 // #region 组件
-import CFile from '@/components/c-upload.vue';
+import CFile from '@common/src/components/frame/c-upload.vue';
 // #endregion
 import moment from 'moment';
 import type { Ref } from 'vue';

+ 1 - 1
src/views/unit/studio/parts/form-3.vue

@@ -18,7 +18,7 @@
 
 <script setup lang="ts">
 // #region 组件
-import CFile from '@/components/c-upload.vue';
+import CFile from '@common/src/components/frame/c-upload.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, toRefs, reactive } from 'vue';

+ 3 - 3
src/views/unit/yearreport/add.vue

@@ -23,9 +23,9 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import CFile from '@/components/c-upload.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CFile from '@common/src/components/frame/c-upload.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 3 - 3
src/views/unit/yearreport/index.vue

@@ -35,9 +35,9 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import Btn1 from '@/components/btn-1.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import Btn1 from '@common/src/components/frame/btn-1.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 2 - 2
src/views/user/scientist/studio/index.vue

@@ -30,8 +30,8 @@
 import store from '@/stores/counter';
 import { ElMessage } from 'element-plus';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 1 - 1
src/views/user/scientist/studio/info.vue

@@ -13,7 +13,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import studioInfo from '@/components/common/studio/info.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';

+ 4 - 4
src/views/user/support/add.vue

@@ -29,10 +29,10 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CForm from '@/components/c-form.vue';
-import CFile from '@/components/c-upload.vue';
-import WangEditor from '@/components/wang-editor.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CForm from '@common/src/components/frame/c-form.vue';
+import CFile from '@common/src/components/frame/c-upload.vue';
+import WangEditor from '@common/src/components/frame/wang-editor.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, reactive } from 'vue';

+ 3 - 3
src/views/user/support/index.vue

@@ -41,9 +41,9 @@
 <script setup lang="ts">
 import store from '@/stores/counter';
 // #region 组件
-import partsSearch from '@/components/c-search.vue';
-import CTable from '@/components/c-table.vue';
-import Btn1 from '@/components/btn-1.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
+import CTable from '@common/src/components/frame/c-table.vue';
+import Btn1 from '@common/src/components/frame/btn-1.vue';
 // #endregion
 import type { Ref } from 'vue';
 import { ref, onMounted, getCurrentInstance } from 'vue';

+ 1 - 1
src/views/user/support/info.vue

@@ -13,7 +13,7 @@
   </div>
 </template>
 <script setup lang="ts">
-import partsSearch from '@/components/c-search.vue';
+import partsSearch from '@common/src/components/frame/c-search.vue';
 import supportInfo from '@/components/common/support/info.vue';
 import { useRoute } from 'vue-router';
 import type { Ref } from 'vue';