diff --git a/module/convert/js/importjira.ui.js b/module/convert/js/importjira.ui.js
new file mode 100644
index 0000000000..a50f29fc16
--- /dev/null
+++ b/module/convert/js/importjira.ui.js
@@ -0,0 +1,33 @@
+function importJira(event, url, hide)
+{
+ if(hide === true) $(event.target).hide();
+
+ $('#importResult .importing').removeClass('hidden');
+
+ $.getJSON(url, function(response)
+ {
+ if(response.result == 'finished')
+ {
+ $('#importResult').append("
" + response.message + '');
+ $('#importResult .importing').addClass('hidden');
+ return false;
+ }
+ else
+ {
+ className = response.type + 'count';
+ $typeCount = $('#importResult .' + className)
+ if($typeCount.length == 0)
+ {
+ $('#importResult').append("" + response.message + '');
+ }
+ else
+ {
+ count = parseInt($typeCount.html()) + parseInt(response.count);
+ $typeCount.html(count);
+ }
+
+ return importJira(event, response.next);
+ }
+ });
+ return false;
+};
diff --git a/module/convert/ui/importjira.html.php b/module/convert/ui/importjira.html.php
new file mode 100644
index 0000000000..8c1a286c06
--- /dev/null
+++ b/module/convert/ui/importjira.html.php
@@ -0,0 +1,37 @@
+
+ * @package convert
+ * @link https://www.zentao.net
+ */
+namespace zin;
+
+$importUrl = inlink('importJira', "method={$method}&mode=import&type=user&lastID=0&createTable=true");
+
+panel
+(
+ set::title($lang->convert->jira->importJira),
+ h::ul
+ (
+ setID('importResult'),
+ setClass('mx-4'),
+ setStyle(array('list-style' => 'disc')),
+ li
+ (
+ setClass('text-danger font-bold importing my-1 hidden'),
+ $lang->convert->jira->importing
+ )
+ ),
+ button
+ (
+ on::click("importJira(event, '{$importUrl}', true)"),
+ setClass('btn primary'),
+ $lang->convert->jira->start
+ )
+);
+
+render();